Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: It's 2015 and I still can't program
8 points by shire on Oct 5, 2015 | hide | past | favorite | 19 comments
What I'm doing wrong? Where can I learn to program besides codeacademy that site bores me I want something more interactive and engaging. I want to become a Web developer or Software developer I have free time to study and learn.



OP, I know you've been asking these types of questions for a long time, but there is no magic way to learning development and getting a job right after. From your past posts it sounds like you've went through the school route and can't even complete your courses. There is no quick and easy way to become a developer, it takes hundreds of hours working at it and even then not everyone gets it.

Thankfully the internet is full of resources on how to get started without asking Hacker News every few months. Many people are self taught and have done it without asking for help, usually they just learn to figure out the answers for themselves.

Lastly, if you really are serious, you might just want to look into coding bootcamps that have sprung up all over the place. And please don't give me that crap about not having money, many bootcamps provide financial assistance and if anything, you can take out a loan, which if this is what you really want to do, will be well worth it when you succeed.


Good comment, @hitsurume!

OP, I've been browsing your previous HN submissions and I think your biggest problem is a lack of self-discipline to actually get some work done. You've already received tons of really good career advice here, but it won't help you if you don't do anything with it.

What you need to learn is not so much programming, but self-discipline, determination, and the grit to see things through to the end once you've started on them. Unfortunately, we can't really help you with that. The ball is in your court now - go and do something with it!

Good luck.


I can tell you what works for me (and others, I hear): pick a project. Decide what are you going to create; a site or program which does X. Write it down, in detail.

Then do it.

Of course, you don't know how to do it. That's the point. Your project goal will guide you to learn the things you need to know in order to accomplish it.

When you succeed, pat yourself on the back, then pick a new, harder goal and repeat.


The problem with your advice is that when you don't know how to code, you don't understand how big the task is. You have a great idea, you try, it's too complicated, after 1 year (and even that requires a lot of determination) you have not completed anything, and you actually have not mastered the language/technology.

It's as if you tried to acquire fluency in ancient Greek by jumping right into reading Aristotle.

The point of entry is always very difficult, for any skill, and learning curve is most often steep and frustrating.

My advice - find someone who lives near by, someone whom you could call at any moment, and discuss your little project with him/her. Choose language/technology, and start working through some tutorials with your project in mind. Your friend should help you downsize your ambitions and limit the scope of the project to something you can actually execute.

You should be done with the basics in about 3 months (that means - no GUI). After that - try to limit the scope of your project so that you think you can make it in the next 3 months. (We know it will take you at least 6-9 months, but still, try to be on the schedule). Only then you will understand what it actually means to be a software developer.

(please note: software engineering is much more than you think when you're just starting to learn computer programming. Coding is not just giving instructions to computer to perform simple calculations. There are design patterns, team work, efficiency, doing things on time, math, frameworks, keeping up with super-crazy pace is which everything changes, there is network issues, and mobile devices, security, scalability, and much more. In short - it's a really complex trade and only few people will be able to do it).


At some point in time, there was this guy called 'Euclid'. He was a mathematician, of sorts. So he wrote a book called "Elements". Pretty famous book. There were tons of Geometry. The kind of Geometry you could build temples for kings, find the shortest road or just show-off your math skills by proving that prime numbers are infinite(!).

Since the book was so famous and deemed important, the Farao tried to read the book. But it was a difficult book. He had to go back and forth more than twice. He was struggling to understand the first chapters. Eveything was so complicaed and soon he got bored to death. So being a Farao (a God among humans) summoned Euclid and asked if there was a shorter path to learning geometry than reading the book. Euclid turned to the royalty and replied: "There is no royal road to geometry."

So, that's the problem: There's no royal road to programming. You have to put the in the hours and patience. If you're really going to do this, stop pressing your self to learn fast. Just choose a language, buy an introductory book and jump in.


Excellent anecdote and encouragement - I think it's spelled "pharaoh" though.


Start with HTML and CSS.

Run MAMP or WAMP locally with Sublime Text . . . learn basic html/css

This book is great for getting your feet wet. http://headfirstlabs.com/books/hfhtml/

Once you make it through that one move on to PHP/MySQL http://www.headfirstlabs.com/books/hfphp/

Once you have those two completed you'll be ready to create a simple app, maybe a to do list or tracking something you collect.

After a few simple applications, even doing the login/authentication you'll be ready to move to a framework.

I'd recommend Laravel or Rails (laracasts.com/railscasts.com) are great resources. But don't skip laying the framework with the books above.

TeamTreehouse.com is a great resource too, but I think the books are better to get you started.

Good luck.


Find a book. Seriously. I find books a lot better than the Internet when reading a new language. For one thing, reading on paper is a lot more relaxing than on-screen, secondly, studies indicate that we actually do remember more that way. Find a good book (the Head First series is a great place to start) and get reading. Do the examples and exercises. If you find something that sparks your imagination, give it a shot as a first project. Stay simple, the 3D multiplayer shooter game can wait. If you don't understand a section, read it again. And again. Skim through the whole book, then read in more detail.

Yes, it will take time. You are learning a new language and a whole new way of thinking. Don't think it will be easy. Don't expect to be able to get a job programming after a month's practice. (Peter Norvig wrote a great article on that: http://norvig.com/21-days.html.) But keep at it. Practise, read, practise, read more. Start reading open source code. Increase the complexity of your projects - make sure every project contains something new, but avoid projects that are way too advanced. Eventually you'll get capable enough that somebody might even consider hiring you.

Be committed to making it work, but most importantly: don't forget to have fun along the way :-)


Edx and Coursera have a variety of software development courses. Classes that run on a schedule offer the benefits of a cohort of peers versus being on your own with a resource like CodeAcademy. Edx's Engineering Software as a Service is beginning now. Edx's Systematic Programming Design series uses Racket and is a sound introductory course.

Another approach is via printed books. I am a big fan of O'Rielly's Head First series. In particular, Head First Java not because Java is the wind beneath my wings but because Kathy Sierra is an excellent author and the series is based to some extent on her work.

Good luck.


Your mind may work differently from the sort of mindset that codeacademy works for. You may have a learning disability or just a different learning style.

It might be worthwhile to get checked out for a possible learning disability. If you have one, once it is identified, you can look for resources on how best to accommodate it. Specific disabilities respond well to specific approaches.

You can also look into learning styles. Your mind can just work differently from the norm without it being a disability per se, but it will impact how you best take in information.

You might try going to Hacker Events or networking or looking for a tutor. Sometimes, someone can explain something in person more effectively than any book. Or you might try going to the library and trying different books to see if different approaches work better for you, etc.

Try things you haven't tried yet, things that are different in some way from what you have been trying.


I agree that coding bootcamps are a great source. Most of them are incredibly supportive and have instructors, mentors and TAs that are generous with their time. I've seen a few also have free meetup groups that are open to all, not just students, to learn a quick project in a couple of hours.

Also, to echo @hitsurume the coding bootcamps do have easy ways to pay, most have flexible payment plans. @saluki has a great point as well to start with HTML and CSS. I agree.

Other than that, what works for me is practice, practice, practice. I practice in the programming language and actually writing out code with pencil and paper.


I've found the tutorials on Lynda.com to be very engaging. The videos are very thorough, and it's definitely worthwhile coding/making notes as you watch the video. I started with James Williamson's Essential HTML Training, then moved on to Simon Allardice's Essential Javascript. Once you have the basics, try and come up with a little side project of your own and just go for it. If you get stuck, there's lots of help available on places like StackOverflow.


I have found teamtreehouse.com and codeschool.com both more engaging than codeacademy, but it can be tough to stay focused unless you really want to build a particular thing, or, you have a group / class that you are working with to keep you focused and motivated.


You ask the same question here since years. Maybe web development is not the right thing for you...


I certainly wouldn't try to build a website like some of these suggestions.

Build a text adventure game. It shouldn't take more than a few days and you can actually say you finished the project.


http://www.freecodecamp.com/

Also try to find a local support group and/or a mentor.


I just wish I had something that goes through me every step of the way to landing a job as a Web developer


Here it is:

1. Build a website using Node.JS. It has login, connects to a postgres database, user can register, receive confirmation emails, login, do something that's persisted (e.g. creating a shopping list and come back and see it's still there.). Hire a graphics designer to give you a minimal design that looks decent, and make your website conform perfectly to his design. Put the site online with a domain name, using AWS EC2. Make it a site someone can legitimately use. Spend $50 on Adwords so some one signs up and uses it to get your first few users, make sure you have analytics installed, later you can tell your clients people really used your site and you can prove it to them. Use Google to find all the information you need, every step of the way.

2. Once you've done the above, maybe months later, ask yourself, now that you know what you know, would you build it much differently? If yes, then rebuild it to incorporate what you know. Repeat until the answer is "I would do it a little differently but not much more than that."

3. Months later again, scour upwork.com or freelancer.com or your university's job board. Find jobs with the technologies you learnt with Node.JS & your choice of database. Take whatever job you can get at whatever price offered (even if it's $5 or $10). Do everything you can to make your clients happy. Grab testimonials. Once you finished up job - ask yourself, did you learn a lot with the project? If yes, raise your asking rate by 25 to 50% and find your next one.

4. When your rate gets up to $100, it's time for you to take your testimonials, and portfolio, and look for a full time job. Optionally you can also take any intern full time positions on the way to $100.

5. Two or three years later from (1.) if your salary has 6 digits then congratulations you've followed the plan to the tee.

The whole process can take two years or more. I followed these steps, except I used Django instead of Node.JS. Django was new and all the rage in 2010. In 2015 it's Node.JS so I changed the formula to that.

Good luck.


I started learning to code in mid-2013 (I knew some HTML, but no real programming language at the time). I have been a professional web developer since mid-2014. While learning, I was working full time and have a wife and young daughter. It takes a lot of perseverance more than anything. If you have gotten bored with CodeAcademy, you should try other resources and find a track that suits your learning style. This is kind of cut-and-pasted from a previous comment I made to another poster, but this is the track I took:

1. Code Academy - Finish completely the HTML, CSS, JavaScript, jQuery and Ruby tracks. I like Ruby because there is an incredible support structure (both online and in person) for those new to programming. 2. Read (and do the exercises in) Chris Pine's "Learn to Program" 3. Read (and do the exercises in) Command Line Crash Course (easily found via Google Search) 4. Read (and do the exercises in) Learn Ruby The Hard Way 5. Go through most, but not necessarily all of the courses on RubyMonk.org 6. Do all of the exercises from Test First Ruby (testfirst.org/learn_ruby) 7. Do a lot (but not necessarily all) of the HTML, CSS, JavaScript, jQuery (and jQuery AJAX), SQL, and Ruby courses on Team Treehouse. If you're interested in design, go through those courses as well. 8. Do a lot (but not necessarily all) of the JavaScript, jQuery and Ruby courses on CodeSchool.com 9. Learn about version control through Git and Github (there are many online tutorials, as well as on CodeSchool and Team Treehouse) 10. Read (and do the exercises in) The Rails Tutorial (www.railstutorial.org). Do every single thing in this book step by step. Then do the entire book again. Then do it again. 11. Build stuff using the knowledge you have gained. Use Google and Stack Overflow to help you when you get stuck. 12. Attend as many local meetups as you can find that are in the topics you are studying.... you'll find lots of nice people willing to help. There are even learning meetups for specific languages and frameworks. 13. Attend a 10-12 week bootcamp. Research the hell out of them before you decide to go to one. Chances are if the interview to get into them is easy, the bootcamp will probably not provide you with enough ammunition to get a real job afterwards. Most of them that are worth anything will have probably wanted you to have a lot of the knowledge that I've described above before attending.

That was enough (barely) for me to get a job as an entry-level developer. I'm kind of doing it backwards, but I've also gone back to Uni part-time to get my degree in CS. I've now finished courses in C, Java and some semi-advanced mathematics.

After almost a year and a half as a developer, I know 10x as much as I did last year, and I still don't know squat :) I think that's a big part of the reason I love it.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

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

Search: