Live data from Hacker News

My personal struggles with learning how to program

vutran.me

21–30 of 50 posts

Re: My personal struggles with learning how to program

#22
post #19

I think I can empathize with the author to an extent — I switched into computer science after freshman year, and encountered many students that had been programming since a young age, or at least since high school. I think the most important thing for me was finding a mentor. I was fortunate enough to get an internship at a startup with little programming experience (possibly out of a sheer determination to learn). T…

Can you share what some of those "roadblock questions" for you were?

Re: My personal struggles with learning how to program

#23
post #14
post #9

Earlier quoted context omitted.

> With ruby, use rails. I'd suggest Sinatra instead, and find some smaller ORM to go with it. There's _way_ too much magic going on in Rails to make for a good place to start.

Perhaps, but then we delve down the rabbit hole, and at some point you might as well make your own sql queries, right? I recommend rails mostly because of the incredible number of helpful resources. Also because you can use it as a beginner, ignore the magic while you don't understand it, and later try to understand it. I committed rails code my first day on a new job with no prior ruby/rails experience, though I had…

> I committed rails code my first day on a new job with no prior ruby/rails experience, though I had used Django before. Pretty green there, as well.

But you had _some_ programming experience, is what I'm getting at.

My problem with rails for a complete beginner is that you end up with too many rails-y things to learn, and you can't focus on the basics.

Re: My personal struggles with learning how to program

#24

19 is not too old. As long as you're interested and still in a good learning context (curious, working memory, emotionally ok, no burn out etc) you can and will learn. About the frustration, programming involves many dimensions: syntax, paradigm, linguistic idioms. Some people can't think in a language, while they fly in another. Write your ideas down, try to refine them in logic/math, don't lose them, the programmin…

>19 is not too old

19 is young.

Re: My personal struggles with learning how to program

#26
post #9
post #6

Earlier quoted context omitted.

Pick one of PHP / Python / Ruby for the web. With ruby, use rails. With python, use django. With PHP, be wary! (but it's incredibly widespread, so it should still be included here). Learn javascript as well, as you can't avoid it entirely. Use codecademy for the bare essentials, explanation, and then jump to framework-specific tutorials. Build your knowledge from there by building new sites or new features on your ex…

> With ruby, use rails. I'd suggest Sinatra instead, and find some smaller ORM to go with it. There's _way_ too much magic going on in Rails to make for a good place to start.

When I was looking at the Ruby/RoR path, I started with Rails, took a step back to learn Ruby, then went back to Rails. At that point I decided to play with Sinatra a bit because I was getting overwhelmed with the Rails learning curve.

Sinatra was cool to get something out quickly for sure. I'm definitely glad I ventured out of the Rails sandbox a bit. That said, the quantity and quality of Rails resources on the web far exceeds that of Sinatra. For a beginner that is likely to encounter a ton of errors and bugs, there are simply more answers online for Rails than Sinatra. That can make the difference between giving up and keeping the excitement going which is crucial for a beginner.

If you find, like I did, that certain concepts are interesting, you will start to naturally peel back the layers of Rails magic on your own to learn what is going on under the hood.

Beyond that, Mike Hartl's Rails Tutorial is something I'd recommend to anyone learning to program as it seems to give solid coverage on ideas that are framework agnostic. Things like version control/Git/Github, writing unit tests and TDD, DRY, REST architecture, proper handling of authentication, etc.

There are so many different rabbit holes to go down, but I'm glad I did, because while I'm not deep on any of these areas yet, it has definitely given me a more complete picture of my projects, how to approach them, things to watch out for, etc.

Re: My personal struggles with learning how to program

#27
post #6
post #2

Short and to the point. Good stuff. Hey guys, in your opinion, what language should I learn first? I am new to this and I will be going to codecademy and other sites. What is the most useful language for web apps and such. For example, what if I wanted to build useful things like my own product hunt.

Pick one of PHP / Python / Ruby for the web. With ruby, use rails. With python, use django. With PHP, be wary! (but it's incredibly widespread, so it should still be included here). Learn javascript as well, as you can't avoid it entirely. Use codecademy for the bare essentials, explanation, and then jump to framework-specific tutorials. Build your knowledge from there by building new sites or new features on your ex…

thank you so much for your advice. I am going to start today so I really needed this. Looks like people agree phython and ruby are great places to start. I'm going to go with one of these.

Re: My personal struggles with learning how to program

#28
post #19

I think I can empathize with the author to an extent — I switched into computer science after freshman year, and encountered many students that had been programming since a young age, or at least since high school. I think the most important thing for me was finding a mentor. I was fortunate enough to get an internship at a startup with little programming experience (possibly out of a sheer determination to learn). T…

Can you share what some of those "roadblock questions" for you were?

I remember when I was learning to program in C I once put a semi-colon on the end of a #define. Statements end in semi-colons, seemed like a fine thing to do and didn't stand out when I was looking for the error. The compiler errors were of no help. It took days to find.

It took a long time to learn to read errors messages and interpret them for what the actual problem is. Forgetting the semi colon on the end of a class in C++ is another one that will making baffling errors, though I think most modern compilers now say "did you forget a semi colon?"

It takes time to learn all these common simple errors that are impossible to look up in a reference book. (Though now you can usually google them)

I remember getting so frustrated that I couldn't figure out how to cast a function pointer to a C API correctly in C++ correctly that I gave up and switched the entire project to C.

These are the only onse that really stick out in my mind, but there were many more.

Re: My personal struggles with learning how to program

#29
Well. There is a magic contingent of how much humans can know at a time. And the amount of time to learn nearly as much as an expert know is five years of hard learning (or better: good teaching). It's just a guess. I think, experts/programmer/whatever will unlearn sufficiently fast, that it doesn't matter much if he is an expert for 10 or 30 years.
Post reply on HN