Few days ago, I had learned C language. It took me almost 8 to 10 months to learn the whole language. Now I wanna want to make real world applications using it. I'm an Ubuntu user or more generally a Linux user. The point to ponder is that I don't know how to create an application. I can efficiently read and write C code, but do not know how to write full fledged applications in it. I want to know how to write GUI applications for Linux. I was thinking of creating a GUI text editor in C on Linux platform but, I do not know where to start? what to do? and how to do? I'm in a total delimma, frustration and desperation. I can create a program in linux that can take arguments as files and then can copy them but, does not possess knowledge far beyond this. I want to contribute to C open source projects, to build softwares like mp3 players and to contribute to Linux system programming.
Please suggest me helpful tips and books from where I can supplement my hunger for knowledge and get out of this nasty situation. Also advice me what to do if I have little knowledge of programming under my belt.

Recommended Answers

All 3 Replies

The next step is to implement an approximation to the socket, thread, GUI or word processing features you would otherwise rely on in Java or Python, that's how the features you are using in those languages were made in the first place.

But, actually I don't know how to implement them. Any help please....

These are tutorials I've used myself.
Sockets: http://beej.us/guide/bgnet/
Threads: http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html
GUI: http://www.yolinux.com/TUTORIALS/GTK+ProgrammingTips.html , http://zetcode.com/tutorials/gtktutorial/
Wordprocessing: For now, just learn to put text into a textbox in GTK+, then save the contents to a file.
MySQL: http://zetcode.com/db/mysqlc/
^This is a good one to have under your belt.^

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.