Hacker News new | past | comments | ask | show | jobs | submit login

I agree. I've struggled for years with programming. I would complete every Codecademy-like course or tutorial I could find, only to be left feeling as if I just learned how to go through the motions of programming. I always knew there was a significant void in my understanding that prevented me from both fully grasping the basic ideas underlying programming and making any meaningful progress. The cliche advice people had was "ok, now create your own project," which is much, much, much easier said than done for a beginner. I have a million projects I started and never finished because I got sick of just not understanding what I was doing. SO answers were utterly baffling and copying/pasting them got me nowhere. What is a data structure and why are they using that one? Why would one algorithm be better than another? And for web programming: What're the basic components of the internet? What are HTTP requests? What are all these protocols? How much should I know for the task at hand? It was so overwhelming. Thankfully I found a set of books that have been wonderful in methodically building my knowledge and skills.

There is so, so much more a beginner should be exposed to than for loops and cleverly slicing lists.

Edit: For those asking for books/resources, here is what I would suggest to someone just starting out. I chose python for myself because I wanted a language with broad potential (ie web development to statistical and biological computation). It's absolutely critical that you complete every exercise provided.

Programming basics:

- How to Think Like A Computer Scientist - http://www.greenteapress.com/thinkpython/thinkpython.html

- Think Complexity - http://greenteapress.com/complexity/thinkcomplexity.pdf

- SICP - http://mitpress.mit.edu/sicp/

---

Web/Development basics:

- Team Treehouse modules on git, shell commands, DNS, etc -http://teamtreehouse.com

- How Does The Internet Work? - http://www.stanford.edu/class/msande91si/www-spr04/readings/...

- Udacity Web Dev course - https://www.udacity.com/course/cs253

---

Django basics:

- Getting Started with Django - http://gettingstartedwithdjango.com

- Two Scoops of Django - http://twoscoopspress.org/products/two-scoops-of-django-1-6




There's an interactive website for "How to Think Like A Computer Scientist", it lets you edit and run code samples right there in the browser. Very convenient for beginners, I can't recommend it enough:

http://interactivepython.org/courselib/static/thinkcspy/inde...


I agree wholeheartedly. I have tried over and over to get into programming and web building. I can go through the courses, retain some knowledge, but when it comes time to build something I'm lost. I feel too often these services focus too much on the middle, but not the beginning and end. As you said, understanding and learning about loops are important, but should not be the full focus.

For example the API stuff on Codecademy doesn't go into the full picture of how you build this into page. I have struggled mightily with understanding how the whole process works. I would love to find a service that walks me through building a page in Flask, hosting it and integrating it into APIs of popular services.


I felt like that, when i finished my first programmin course i was like, well how do i make something useful now? Because you know i could solve some Euler problems. Finally when i started to "get it" was simply when i started to do it.

E.g You break your problem in pieces and start making something. Wanna make a music player? Well how do you play music oh theres a library that you call song.play, cool. How do you read the tags? How do you get the files? Isnt a playlist just an array? And so on...

This is the approach that worked for me.


You'd suggest SICP to someone just starting out?


If a beginner does want to tackle SICP, I recommend they follow the MIT 6.001 lecture series on YouTube. It's much more manageable than simply diving into the text, but makes a great companion if you do want to keep up with all the exercises.

Granted, I'd recommend doing a L*THW or something before going to SICP, but you don't need a ton of programming experience to get something out of it.


I've always heard it's very.. 'mathy' for lack of a better word. It's always put me off of delving into it to be honest


People learning to code would be best advised to find a volunteer group who need code writing (even if they don't know they need code writing), or an open-source project. I agree learning to write code is only half the challenge, dealing with constraints like capacity, users, deadlines, hosting, stubborn colleagues, unsolvable problems it's easy to work-round or ignore with theoretical exercises. You only get those in a real-world job or real-world volunteer effort. The student may also find a mentor there.


You allude to the solution in your last sentence, but I think "find an open source project" is pretty bad advice for someone who is really brand new. Most open source projects have very ad-hoc project management. There is typically a big bucket of stuff that needs to be done, but very little direction on how to decide which things you can and should actually do. More experienced developers can go in and muddle around semi-blindly until they figure out a reasonable starting point, but that's really hard for less experienced people to do. It really takes a mentor willing to do that triage - "maybe this would be a good place for you to start" - but few open source projects seem to be forward-looking enough to provide that level of mentorship.


I'd go so far is to buy the time (through money or barter) of an existing senior web developer in your target language for 4-8 hours. There is nothing like pairing with someone who has already done this to get over so many of the introductory hurdles.


Got any book suggestions? I just started learning how to program about 6 months ago and personally JavaScript: The Definitive Guide, 6th Ed. was the first book that got through to me when it comes to Javascript and programming in general, but I feel I'm still lacking in other areas of web development.


>> Thankfully I found a set of books that have been wonderful in methodically building my knowledge and skills

Would you be able to share the titles of some of these books?




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: