Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Read or Jump Right In
5 points by DirtyPowder on Jan 3, 2011 | hide | past | favorite | 9 comments
I am new to programming and have decided to start with Python. My question is should I read up on the programming theory first or should I just jump in and start building things?



Jump right in. If you take a CS class they'll have you coding right away. Since you're doing this on your own you won't have that external force to keep you moving. What will end up happening is you'll constantly read more and more, but never feel "ready" to start coding. The solution is to just start coding.

Though I had a lot of programming experience before I started to learn web dev, I had zero Ruby on Rails experience. So I started reading, watching, buying any material I could find. I still didn't feel ready. Then I realized I will never feel ready until I get started. The worst that can happen is you make garbage and learn something while you're at it. And don't get down on yourself if you're not producing right away. The learning curve is never linear. You'll get better at it faster and faster.

Also, hang out in Python IRC rooms. If you can't find an answer to your question through Google or Stack Overflow, chances are there will be someone in there who can help guide you.


What prior experience do you have?

In general, I'd say jump right in: Dive Into Python http://diveintopython.org/

The best way to figure out how to make things is to make things. It's rewarding to be able to get stuff working from the get-go, and tinkering with that, trying to bend it to your will motivates you to understand how it works.

However, if you're familiarity with computers is very basic, you may want to do some reading about how computers work and the abstraction layers a program has to deal with; for example, do you know what abstraction layer Python is at?

Side note, you might find it even more fun and rewarding if your first programs are graphical http://raphaeljs.com/playground.html instead of being text-oriented, command-line programs that Python is most suited for.

If so, try learning JavaScript, that link uses the Raphael library, which you can find out more about at http://raphaeljs.com/reference.html


I have a general understanding of computing and networking as I am currently employed in the information assurance field (CISSP and Network +), programming is however, completely new to me.

I guess the hardest part is I want to be an expert right away. I often read HN for inspiration and therefore want to perform at the same level.

So far the basics seem, well very basic and easy to understand. When I start looking at building something, I feel a bit overwhelmed. I want to push out things that I can be proud of and will help the community develop, and I guess that desire is conflicting with my current level of knowledge.

Sorry, bit of a rant and long post, but just trying to sort everything out so I don't get disillusioned.


> I guess the hardest part is I want to be an expert right away.

Not possible, it's like learning a musical instrument.

> When I start looking at building something, I feel a bit overwhelmed.

What are you trying to build?


I have a lot of ideas, for instance an RSS feed filter to remove duplicates. Same idea could also be used to filter twitter feeds, although I understand the code would be different.

Do you think it would be better to work on my own projects and jump in the deep end or should I start with cookbook code and learn from that first? Part of the problem maybe is not understanding where to go once I learn the basics.


In this case, absolutely jump in the deep end. Find a way to get RSS feeds, and a way to display them -- there's probably libraries for either, however you plan on doing them -- and try to process them in between. Start with something small that works, and add functionality piece by piece, careful to make sure each change you made results in something that works. If you understand each piece, you understand the whole. Every piece you understand, you've learned something.

About "being an expert" -- programming is a very, very broad topic, with far too many different technologies and libraries used in different situations, so when even "experts" work, usually only a tiny amount of their work falls under their actual "expertise" (as in what they could do blindfolded), and they are always Googling what to do next. So when you do that -- constantly Google what to do next -- don't feel like you're not an expert.

I guess what I'm saying is, (perhaps unlike other fields) the body of knowledge in programming, not only that exists, but that any typical work involves, is so vast, there are no "experts" that have intimate knowledge of all of it.


Thank you. Definitely encouraging words and I am now going to jump in the deep end (Canonball!).


Perhaps you could try out http://learnpythonthehardway.org/index

It appears to be a good mix of 'reading' and 'jumping in'.


The jumping right in is of the jump-right-in-by-typing-in-code variety. And that's the way to go.




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

Search: