473,386 Members | 1,766 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

Becoming a C _developer_

I've for long known the C syntax and I like it very much. I can easily
understand C programs and I've myself written lots and lots of Win32
API code. However, since my mainstay has been VB, I'm not at all
confident of calling myself a C programmer and I still believe I do
not know C. That is true because when I look at projects on
SourceForge, I do not see myself as capable as re-creating that stuff.
I can't write sound editors, zip/compression apps, binary editors et
al.

As a self-analysis, I believe I know the C syntax but I score rather
measley on the vocabulary. So I ask you gurus: what's your advise to
someone who's known _only_ the C syntax for a long period of time now,
say more than 6 years, has done some Windows Programming but nothing
else in C. What's your tip to this self-learner who wants to take the
next step in writing apps alike those that feature on SourceForge.
Where do I look next? How do I improve my C vocabulary? Should I first
browse the standard library documentation? What next? I believe C in
itself is such a small language with a very general function set
dealing with basic data types in the standard library. Am I right in
assuming that for doing a particular non-generic application like the
ones mentioned above, I'd have to depend on a library and read its
documentation? Do these developers developing, say, a database
application that provides a C front-end connecting to a MS SQL Server
database do the connection thing from scratch in C or do they rely on
an external pre-packaged library?

How do I proceed improving my vocabulary? I want to quickly begin
writing a useful application that I can proudly boast of.
Nov 14 '05 #1
7 1020
Curious Student wrote:
As a self-analysis, I believe I know the C syntax but I score rather
measley on the vocabulary. So I ask you gurus: what's your advise to
someone who's known _only_ the C syntax for a long period of time now,
say more than 6 years, has done some Windows Programming but nothing
else in C. What's your tip to this self-learner who wants to take the
next step in writing apps alike those that feature on SourceForge.
Where do I look next? How do I improve my C vocabulary? Should I first
browse the standard library documentation? What next? I believe C in
itself is such a small language with a very general function set
dealing with basic data types in the standard library. Am I right in
assuming that for doing a particular non-generic application like the
ones mentioned above, I'd have to depend on a library and read its
documentation? Do these developers developing, say, a database
application that provides a C front-end connecting to a MS SQL Server
database do the connection thing from scratch in C or do they rely on
an external pre-packaged library?

How do I proceed improving my vocabulary? I want to quickly begin
writing a useful application that I can proudly boast of.


Find a problem that isn't [adequately] solved. Then go solve it.

Don't just mindlessly write code and hope it will be "the next best
thing". Otherwise you will be like the majority of useless tools on SF.
If you're not that strong in C I'd pick a relatively simpler problem
to solve first.

Keep in mind that you don't always have to write something 100%
original. For instance, my claim to fame is crypto code despite the
fact that crypto libraries existed before I wrote mine. In my case I
decided [IMO] to make a better library by using a user friendly API.

Here's a sample problem if you're upto it ;-) It involves using the
curses [or ncurses] library and an XML library.

Write an RSS newsticker that can run in the background and scroll
accross the top of the screen [one line] news feeds. You'll have to
learn how to use ncurses [not hard] so you can write the line and more
importantly return the cursor to it's original position. You'll learn
how to interface with other libraries [like the XML code] and you'll
learn about IPC issues like signals [say use SIGALRM for the ticker update].

;-)

Good luck. And if you manage to write it... damn let me know cuz I'd
love to see it!

Tom
Nov 14 '05 #2
Curious Student wrote:

I've for long known the C syntax and I like it very much. I can easily
understand C programs and I've myself written lots and lots of Win32
API code. However, since my mainstay has been VB, I'm not at all
confident of calling myself a C programmer and I still believe I do
not know C. That is true because when I look at projects on
SourceForge, I do not see myself as capable as re-creating that stuff.
I can't write sound editors, zip/compression apps, binary editors et
al.

As a self-analysis, I believe I know the C syntax but I score rather
measley on the vocabulary. So I ask you gurus: what's your advise to
someone who's known _only_ the C syntax for a long period of time now,
say more than 6 years, has done some Windows Programming but nothing
else in C. What's your tip to this self-learner who wants to take the
next step in writing apps alike those that feature on SourceForge.
Where do I look next? How do I improve my C vocabulary? Should I first
browse the standard library documentation? What next? I believe C in
itself is such a small language with a very general function set
dealing with basic data types in the standard library. Am I right in
assuming that for doing a particular non-generic application like the
ones mentioned above, I'd have to depend on a library and read its
documentation? Do these developers developing, say, a database
application that provides a C front-end connecting to a MS SQL Server
database do the connection thing from scratch in C or do they rely on
an external pre-packaged library?

How do I proceed improving my vocabulary? I want to quickly begin
writing a useful application that I can proudly boast of.


IMHO ->

I think you're on the right track. `C' is much more than
its syntax. I've been doing `C' for quite a while, and I
believe I see it used as more of a "glue" language than as
a pure implementation language (`C' is not unique in this,
though). Let me explain. It not enough to say "I'm a C
programmer" but "I'm a `C' programmer knowledgeable in the
following architectures (Unix, Mac, Windows, etc.) and I've
worked with the following APIs (X, Motif, MySQL, SDL, QT,
curses, pthreads, sockets, etc.)".

Basically, a `C' program will _glue_ the MySQL API with the
Motif API to produce the desired application. You wouldn't
necessarily use `C' to directly read the database file much
less use `C' to write pixels in the display memory. It's one
way of looking at things, however. You'll still "build"
things in `C', but usually if there's no _standard_ API
for it. In a way, you begin thinking in terms of not just
`C', but the API using `C'.

I'd say 1st, decide what architecture(s) you want to target:
Windows, Unix/Linux, etc. Then decide what API's interest
you. An approach might be to write something _simple_ in
VB (since you're already proficient in it), then "port" it
to `C' on your chosen architecture using the selected APIs.

Also, consider getting a couple of books. A couple of my
picks include "The C Programming Language" and "The Practice
of Programming".

While the _high quality_ of programs on SourceForge amazes me,
the authors' intent for their project(s) generally does not
include a tutorial for learning `C'. Also, this group has a
FAQ, and it's definitely worth reading.
HTH,

Stephen
Nov 14 '05 #3
On Mon, 31 May 2004, Curious Student wrote:
I've for long known the C syntax and I like it very much. I can easily
understand C programs and I've myself written lots and lots of Win32
API code. However, since my mainstay has been VB, I'm not at all
confident of calling myself a C programmer and I still believe I do
not know C. That is true because when I look at projects on
SourceForge, I do not see myself as capable as re-creating that stuff.
I can't write sound editors, zip/compression apps, binary editors et
al.

As a self-analysis, I believe I know the C syntax but I score rather
measley on the vocabulary. So I ask you gurus: what's your advise to
someone who's known _only_ the C syntax for a long period of time now,
say more than 6 years, has done some Windows Programming but nothing
else in C. What's your tip to this self-learner who wants to take the
next step in writing apps alike those that feature on SourceForge.
Where do I look next? How do I improve my C vocabulary? Should I first
browse the standard library documentation? What next? I believe C in
itself is such a small language with a very general function set
dealing with basic data types in the standard library. Am I right in
assuming that for doing a particular non-generic application like the
ones mentioned above, I'd have to depend on a library and read its
documentation? Do these developers developing, say, a database
application that provides a C front-end connecting to a MS SQL Server
database do the connection thing from scratch in C or do they rely on
an external pre-packaged library?

How do I proceed improving my vocabulary? I want to quickly begin
writing a useful application that I can proudly boast of.


It is interesting that you use the term 'vocabulary'. I look at writing a
program something like writing a story. I would imagine that all great,
modern authors started by reading other great writers. At some point they
had to try writing something themselves. Often they would start by writing
short stories and submitting them to magazines.

Stop reading source code and try writing a short 'story'. Don't try to
write the equivalent of War and Peace or Moby Dick. Write something small
and get some constructive criticism. Post your code to here and you will
get plenty of advice.

--
Send e-mail to: darrell at cs dot toronto dot edu
Don't send e-mail to vi************@whitehouse.gov
Nov 14 '05 #4
"Curious Student" <es*********@rediffmail.com> wrote in message

I've for long known the C syntax and I like it very much. I can
easily understand C programs and I've myself written lots and lots
of Win32 API code. However, since my mainstay has been VB,
I'm not at all confident of calling myself a C programmer and I still
believe I do not know C.
Knowing C is a bit like knowing how to use a pen, one is essential to
programming as the other is essential for writing, but by itself it can't
tell you what to write.
If you can write GUIs in Visual Basic then you can write them in C - the
control flow structures of both langauges are similar, and even the
functions have similar names. Underneath they are calling the same code,
usually.
How do I proceed improving my vocabulary? I want to quickly
begin writing a useful application that I can proudly boast of.

Ultimately a computer has got to something not connected with IT if it is to
be useful. So what are your interests outside of computing? Can these be
turned into a simple game, a business application, something for the home?
Nov 14 '05 #5
kal
"Malcolm" <ma*****@55bank.freeserve.co.uk> wrote in message news:<c9**********@newsg3.svr.pol.co.uk>...
If you can write GUIs in Visual Basic then you can write them in C
Not quite true. Programming in VB is like using a spreadsheet program.
You can actually produce a working program in VB without writing a
single line of code. "VB Programming" is somewhat of an oxymoran.
Underneath they are calling the same code, usually.
The VB runtime calls the same code a C program would call. But the
VB programmer is blissfully oblivious to such "mundane" things.
Ultimately a computer has got to something not connected with IT if it is to
be useful. So what are your interests outside of computing? Can these be
turned into a simple game, a business application, something for the home?


Avoid writing anything useful. Write something silly and utterly
useless. Write an OS.
Nov 14 '05 #6

"Darrell Grainger" <da*****@NOMORESPAMcs.utoronto.ca.com> wrote in message news:Pi*******************************@drj.pf...
On Mon, 31 May 2004, Curious Student wrote:
I've for long known the C syntax and I like it very much. I can easily
understand C programs and I've myself written lots and lots of Win32
API code. However, since my mainstay has been VB, I'm not at all
confident of calling myself a C programmer and I still believe I do
not know C. That is true because when I look at projects on
SourceForge, I do not see myself as capable as re-creating that stuff.
I can't write sound editors, zip/compression apps, binary editors et
al.

As a self-analysis, I believe I know the C syntax but I score rather
measley on the vocabulary. So I ask you gurus: what's your advise to
someone who's known _only_ the C syntax for a long period of time now,
say more than 6 years, has done some Windows Programming but nothing
else in C. What's your tip to this self-learner who wants to take the
next step in writing apps alike those that feature on SourceForge.
Where do I look next? How do I improve my C vocabulary? Should I first
browse the standard library documentation? What next? I believe C in
itself is such a small language with a very general function set
dealing with basic data types in the standard library. Am I right in
assuming that for doing a particular non-generic application like the
ones mentioned above, I'd have to depend on a library and read its
documentation? Do these developers developing, say, a database
application that provides a C front-end connecting to a MS SQL Server
database do the connection thing from scratch in C or do they rely on
an external pre-packaged library?

How do I proceed improving my vocabulary? I want to quickly begin
writing a useful application that I can proudly boast of.


It is interesting that you use the term 'vocabulary'. I look at writing a
program something like writing a story. I would imagine that all great,
modern authors started by reading other great writers. At some point they
had to try writing something themselves. Often they would start by writing
short stories and submitting them to magazines.

Stop reading source code and try writing a short 'story'. Don't try to
write the equivalent of War and Peace or Moby Dick. Write something small
and get some constructive criticism. Post your code to here and you will
get plenty of advice.

--
Send e-mail to: darrell at cs dot toronto dot edu
Don't send e-mail to vi************@whitehouse.gov


On the other hand, it is also interesting to note the way you have put it.
Generally, if I have seen around, people approach learning C in a mechanical
way than adapting a philosophical way. The philosophical view offers not only
the easiness, but also a starting point for imaginations. And, imagination is
very much essential for writing a story! Do you agree?

--
"Thinking should become your capital asset, no matter whatever
ups and downs you come across in your life."
- Dr. APJ Abdul Kalam, The President of India
Nov 14 '05 #7
Thank you for your valuable suggestions, friends.
Nov 14 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

19
by: Arthur | last post by:
Did I hallucinate something about __name__ becoming read-write? Not in alpha2. Can't find the reference to this I thought I read - that it was concluded to be necessary in connection with...
6
by: gong | last post by:
hi i recently looked at alexandrescu's book on c++, and i found it pretty much unintelligible. i have a few points which i wonder about. 1. as a developer, it is important, from a bottom line...
3
by: Laszlo Szijarto | last post by:
Is there any way to stop a form from ever becoming the Active Form in an application? Thank you, Laszlo
7
by: Jim Michaels | last post by:
This is a simple coding tip I learned to prevent comparisons from becoming assignments (and this becoming a hair-pulling session during debugging): in comparisons, try to put your constants on...
16
by: Singulus | last post by:
Hello all, I've searched for similar threads, I've found some bit of useful info here and there, but nevertheless I want to post my questions...So, how can I (we, in fact the forum can benefit...
28
MMcCarthy
by: MMcCarthy | last post by:
I made this statement in a thread earlier ... "Macros are becoming obsolete as they are very difficult to maintain" JConsulting suggested I create a debate on the subject, so I am :) I made...
0
by: gdrenfrew | last post by:
I'd like to know if it is possible to stop the parent application of a floating form becoming active when the controls on the floating form are clicked? I've got a large application, with multiple...
0
by: vinsonjos | last post by:
Hi Javascripts are becoming disabled on Postback of Page. Regards Vinson
4
by: lyle fairfield | last post by:
My observation is that over the past few months many of our regulars seems to be drifting away, making fewer contributions or none at all. Why? I can speculate: 1. The quality of questions...
5
vdraceil
by: vdraceil | last post by:
Is vb6.0 really becoming obsolete?Almost everyone around feels proud to say that they are a '.Net programmer' as it has become much popular..Even companies prefer .Net programmers!! Do companies...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.