Hacker Newsnew | past | comments | ask | show | jobs | submit | dgulledge's commentslogin

I read just enough about it that I can get a "Hello, World" program written and running. I then try a few things to modify that program to learn more about the language. In particular, I'll often try breaking it in several different ways. If I know what I broke, then I can learn how to interpret error messages.

Once I've done that, it's time to start on a small project. I just start coding and looking up what I need to know. I know in advance that my code will be bad. In fact, the more often I encounter some piece of documentation that leads me to say, "Oh, I should have done it that way", the more I learn.


Sometimes. It depends on what I'm typing. Documentation I mostly touch-type. Code, never. Touch-typing is one of those skills that pays with an economy of scale. The time it takes to place both hands on the home keys isn't justified when I will have to remove them too frequently.


I agree 100% about Ubuntu, Python and PostgreSQL. They're an excellent tool set. You'll want to learn how to configure PostgreSQL. Go to the project website. The manuals are quite good.


A variant on 4 that I've been meaning to get to for a little while now is to implement the same network protocol in several languages.


Both Vim and Emacs have some very nice features. Compared to a full-featured IDE, yeah they do look a bit old school. Even so, you can be incredible productive in either of them. I use Emacs myself, and I can't imagine trying to live within the constraints of an editor that I can't extend.


Congress shall make no law abridging the laws of physics.


Absolutely! By learning to deal with pointer manipulation and memory allocation, you can learn what it is, why it is necessary and how to recognize when it is broken. One of the problems with garbage collection is that it suffers from a memory management problem at a higher level of abstraction. There was an entry in an autonomous vehicle competition a few years ago that stalled. Physical objects in the environment were represented internally as objects in the code. When the vehicle passed them, they were moved to a collection of objects that had already been identified but were out of the field of view. That collection grew unbounded even with garbage collection because every one of those objects was still referenced.


There are a lot of good ones, but my favorite is still Erin McKean's talk about dictionaries:

http://www.ted.com/talks/lang/eng/erin_mckean_redefines_the_...


One of the best things about HN is precisely that there is a core focus to it, but that it touches on many related topics. Some of the most valuable areas for exploration are where one field of knowledge meets another. Each sheds some light on areas of the other that haven't yet been explored.

At 44, I'm backing up your argument. But honestly, I had already accumulated most of my eclectic intellectual curiosity a quarter century ago. Even so, I still browse the technical books at bookstores. Libraries are hopelessly out-of-date on anything technical that would interest me. I don't need the latest power users' guide to anything. I'm interested in new insights into building something that has never been done before.


There are situations where the order of evaluation is not guaranteed. The big one that I've seen is evaluation of expressions as arguments in a function call, but there are others. It is easy to create floating point expressions where because of rounding, the results will differ depending on the order of evaluation. I'm not aware of situations where the order of operation differs from one execution to the next. However, I could see a compiler generating different code for the same expression when it appears in more than one place in the source code because of optimization.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: