I'm new to Linux. I've got Ubuntu and K&R. Now what?

4 points by pashbonk ↗ HN

20 comments

[ 3.7 ms ] story [ 52.8 ms ] thread
... go start a company?
What's your aim? If you've K&R are you trying to learn C? If you want to learn the Unix philosophy then get Kernighan and Pike's _The Unix Programming Environment_. If you want to create a web start-up, learn Python and Django. What skills do you already have?
Are you a Django fan? If not, what's your motive for solely recommending Django, instead of TurboGears or Pylons?

(Yes, the fact that Python has multiple frameworks is a problem, but settling on Django is not a solution.)

Django is a reasonable enough one to learn. He hasn't the skills to examine the possible contenders and make a good decision himself. After learning Django, then he may be in a position to better appraise the competition.

Likewise, I didn't say "read a book on Unix" but gave a specific, worthy, contender. As a complete newcomer there's little more annoying than general hand-waving.

Hm, I guess that's fair enough. My main concern is that if he starts with Django, he might never know there's other frameworks.
If he starts with Python, he may not know there's other languages. If he... If he starts with digital computers, he may not know there's analogue ones. :-)
Yes, yes.. But I hang out in #python.web on freenode, and you'd be surprised how many people I get who think that Django, or mod_python, or CGI is the only way to make Python webapps. Not the best way; the only way.
What do you want to do? Join one of the smaller open source projects, get a mentor and build something amazing! :-)

Seriously, I do think that some hands-on useful development is the fastest track to become a master of your domain! :-)

Surely the next step is to contact some VC companies and ask for say, $10 million :-). This really is an open ended question! If you are about to start programming then there is no limit to the possibilities so you'd better pick a direction to go in that you will find interesting. Good luck.
If you have enough balls to learn C from K&R, you could try learning C++ from Koenig & Moo's "Accelerated C++" instead. C++ contains everything in C, and has a lot of handy higher level constructs. You can deal with the specific idiosyncrasies of pure C later, but can get started quickly with C++. http://tinyurl.com/26cjz9

If you don't have any background in programming, or don't really know that you want to learn C or C++ specifically, I would recommend starting with Python. C++ is good if you know that you want to write systems software, or need to interface with C/C++ libraries. If you're just looking to learn to code, then learn Python. kyro said that he enjoyed learning from the free ebook "How to Think Like a Computer Scientist: Learning with Python". http://www.ibiblio.org/obp/thinkCSpy/

Ditto the recommendation on "How to Think..." ...a few years ago, I had no programming knowledge whatsoever, read about 1/3 of the book, and was already building useful stuff (to me, anyway).
Hmmm, I definitely wouldn't recommend newbies learning C++. Every time I've tried to dig into C++, it's been a turn-off. K&R's great. C's great, and it's small enough to get your head around, but if you want to know a language like C++, yeah, definitely agreed about Python.
What's the trouble with C++? It seem to me that using the higher-level constructs of C++ is a lot friendlier than having to malloc and free things all over the place. You don't have to jump into C++ template metaprogramming. :-)
Similarly, automatic garbage collection is a lot friendlier than C++ memory management.

With C for close-to-the-metal stuff and to optimize bottlenecks, Python for high level, and ctypes to glue both, I find no niche left for C++.

True, it's just that if you want those features of C++ you're better off jumping up to something modern: Python/C#/Java. Those languages (perhaps even Java) feel well-designed and friendly instead of like a hacked-on OOP addition to C.

I'm aware that C++ is not just a hack, but compared to modern designed-from-scratch languages, it does feel like one a lot of the time.

Congrats :) I have first edition of K&R in my bookshelf and I still love it. It cost 25 slovak koruna /approx $1/ at that time :)
Start compiling Gentoo. When it's done, you'll be ready for it.
Here's information on cgi programming with C: http://www.cs.tut.fi/~jkorpela/forms/cgic.html

Not many people do cgi programming (especially with C) anymore, but it will teach you a lot about Linux and programming. You will have to get a working web server for one. Configuring Apache on Ubuntu should be a good learning experience. If you can also get a working database server such as PostgreSQL (my preference) or MySQL working with your website, you will know the basics for building a real web-based application.