A beginning programmer

Steven Friedrich FreeBSD at insightbb.com
Mon Jul 11 00:08:20 BST 2011


> My problem is this though... I don't know what to do with this new
> found knowledge of these languages. I just don't know
> what to do with it, I don't have any problems that need to be solved
> and unfortunately I don't really see myself as familiar enough with the
> languages (except MAYBE c++) to start trying to help everyone here at KDE
> or even Gnome. I'll sometimes be roaming linuxhomepage.com / lxer /
> phoronix and see some new patch mentioned, and out of curiosity I'll click
> on it and read it, and
> I have to say.. alot of the time it looks like gibberish to me. Even
> with comments,
> I can't make sense of it. Perhaps im simply unlucky and choosing the
> more... low-level
> patchs to look at, but I got to say, its rather disheartening when I
> can't even make sense
> of what is going on.
> 
> I know this isn't strictly limited to KDE but I'm sure that my situation is
> hardly new to programmer's the world over.

I suspect no one has told you that programming can roughly be divided between 
two domains; applications programming and system programming.

Application programming these days is mostly done by web programmers.  That's 
because corporations want applications that they can use around the world 
easily, as well as other considerations.  Application programming includes 
applications like Amazon.com, where the user interacts with a database of 
products and selects items to go into a shopping cart.  Other applications on 
the Internet can be found on nearly any Internet web site.

Systems programming is between application programs and the operating system, 
such as Windows, Linux, FreeBSD, Mac OS, etc.

Most programmers begin by creating end-user apps.  This is likely what you've 
done.

In any case, the best thing you can do is decide which OS you'd like to 
develop under.  There are a lot of integrated development environments 
available for Windows, but few are free.  If you have money, it's easy to get 
started.  You can buy a fairly low cost compiler for Windows and a few books 
to expand your skills.

You can also, for FREE, download a release of Linux (literally hundreds of 
distros to choose from) or BSD (FreeBSD, NetBSD, OpenBSD), and "burn" it to a 
DVD and install it on a computer.  I bought a laptop years ago and I used 
Partition Magic to shrink the Windows partition so I could install FreeBSD on 
a new partition using the space I freed with Partition Magic.  This is not the 
way I would recommend you do it though.  If I were you, I'd buy an external 
drive with USB connection and install FreeBSD on it, leaving your Windows 
drive alone.  You could disconnect the Windows drive when you're ready to 
install FreeBSD so you can't accidentally wipe it out, then after FreeBSD is 
installed and you're comfortable, reconnect the Windows drive and use 
BootManager to select which OS to boot from.  If you choose to use FreeBSD or 
Linux, do yourself a favor and buy a book on it.  You will also need a book 
that describes unix from a user perspective.  Web sites for FreeBSD and Linux 
usually include recommendations for several great books.

In the past, you could subscribe to various magazines that include sample 
programs or ideas, such as C/C++ Journal (something like that).  Google for 
ideas, such as "C++ magazine Windows"  substituting any language you like and 
any OS.

It's also a good idea to become familar with various general purpose apps, 
such as word processors, spreadsheets, and databases.  I often use these to 
solve problems quicker than writing a special purpose app.  As an example, I 
use a spreadsheet to keep my personal checkbook, but someone else might use 
QuickBooks, or some Microsoft product.  It's best to check out both types, 
general (spreadsheet) and specific purpose (Quickbooks).

Hope this helps.  I'm sure many people will offer even more advice.  8o)

My main point is that "hands-on" beats book learning every time.  You still 
need book learning, but at some point, you have to be able to apply it.  You 
can't apply it unless you have an environment to use it in, and that takes 
hands-on use.
___________________________________________________
This message is from the kde mailing list.
Account management:  https://mail.kde.org/mailman/listinfo/kde.
Archives: http://lists.kde.org/.
More info: http://www.kde.org/faq.html.




More information about the kde mailing list