Ask HN: I am 35 years old with no degree – can I still program?
I am not even a programmer now, and there is no way I could afford going back to school for a CS, or any type of degree. But I do have the free schools and information available on the internet. I have started at the beginning with web development in one of the free online schools. And I enjoy it. I know I have a long way to go... I know that the chance of me developing the next twitter or facebook is remote. But There is no chance if I don't try to learn about it.
Realistically, I am not planning on quitting my day-job....
But my fantasy is, if I do stick with this, and learn about web development, Python, Ruby, PHP, etc etc in my free time. Maybe it could happen. Maybe a door or two would open for me. Maybe I would create an app, or be part of one's creation. If this hobby becomes more than a hobby, and I crate web pages, web apps, and contribute to the community... Maybe I would be confident in my skills to apply to some tech jobs. Or do some freelance work. And don't get me wrong, I really feel like I missed my calling. Now 15 years later with a family I am not in the position to quit this job and go to school. And of course the money issue, I would probably be able to make more than I make now if this happened. But that's not why I am interested.
What do you guys think? Is this possible or is this a pipe dream? Should I just play more Halo and quit doing exercises on the web?
71 comments
[ 4.6 ms ] story [ 162 ms ] threadI learned to make apps in less than a year with no CS education. Granted, I dedicated my days and nights to it. You don't need to learn ABOUT web development, you simply need to just DO web development. Make a form on page with HTML. Stylize it with CSS. Make it insert something into a database with PHP/MySQL. There are tons of simple tutorials for these kinds of things.
If you've seen the very first iterations of Facebook and Twitter, they are so simple that any modern beginner programmer could actually clone their features. You could even make that your first project, a basic twitter page that stores form data.
Build the simplest versions of your ideas. What's important is that you hack enough to get shit done, and have fun doing so
Traditional education is valuable for programming but is neither necessary nor sufficient for doing it commercially.
This is very untrue of playing video games, by the way. Trust the voice of experience: if you have enough time to run a WoW guild, you have enough time to build a business. Less dragons, better loot. I'm assuming the same is likely true with Halo.
There are also numerous similarities between progression raiding and marketing. Replace phases with funnel stages, try different strategies until you figure out which one results in fewer wipes...
Seriously. To anyone considering getting into software for pleasure, money, personal growth, or any combination of the former, go for it!
This is so true. While you won't get to expert status on everything related to programming in one year you can learn enough about a certain language/API to build products.
And running a software business is really more selling and marketing than programming anyways.
> if you have enough time to run a WoW guild ...
Been there, done that. This statement is also incredibly true ... now I'm thinking about suing Blizzard for the three years they robbed me ;)
One of the many things I love about programming is the lack of an age/experience barrier. No degree is required and anyone can get started at any age. If you shoot me an email at zchlatta (at) gmail.com, I might be able to work out someone for you to put your name on, depending where you're at with web development.
One of the interesting things about software development compared to many other professions is that the field is still so new that people can have very successful careers without having done a degree.
Another interesting aspect is that software affects virtually every other field so there's opportunities for people coming from all kinds of backgrounds.
Given your current situation, I'd approach it as a hobby for now. Try to come up with little projects that are related to other things that interest you, or that would make your current job easier.
As you learn more and gain experience, try to apply your new knowledge to slightly more complicated projects, or to improve or redo past projects. You'll find the whole thing more rewarding if you do it in a way that you can get some direct benefit out of your work. The trick here is picking the right problem to solve. People often pick something that seems simple on the surface only to get discouraged and give up when it turns out to be more complicated than they first thought. Just try not to bite off more at once than you can chew.
Keep your eye out for opportunities to help solve other people's problems but again remember to keep it simple. Also keep in mind that their view of the problem and how it should be solved will be very different to your's. Learning how to manage this is a very valuable skill in itself.
Eventually you'll get to the point where your knowledge of development is that you can charge other people to apply your expertise to solve their problems for them. That's all a professional developer is.
At some point consider doing some more academic or abstract study. You don't have to do this right away, or formally at a college or school. The courses on sites like Udacity, Coursera and MIT Open Courseware cover a lot of the same stuff. While these courses will dive into areas that you won't use every day, they do give you a good overview of how everything fits together so you know the right questions to ask and the right places to look when you hit unfamiliar problems. You can get a long, long way without doing this at all depending on the type of development you want to do though.
Software development is a huge field so just keep learning whatever interests you and keep applying it to solve problems in other areas of your life. You'll get to enjoy the benefits of what you make and with persistence might one day be able to sell what you've learned to other people.
Pick a side project that sounds interesting (sounds like you're into games), figure out how to code it, and then put the source up on Github.
These side projects are going to be your portfolio of work, proof that you're not an idiot and worth their weight in gold when you go to apply somewhere.
Good luck.
Now to be fair, I learned some C++ in high school (nothing beyond algorithms and solving math problems by coding though), and I think I learned HTML in 7th grade and also touched Javascript in high school, so I had a "base start", but then went on to a whole different field and turned back to coding about 8 years later.
EDIT+: And there's no reason you won't create the "next Facebook or Twitter", at pre-scaling stage they were both very simple technically speaking, what one could learn in a couple years starting from absolute zero, no need for Stanford level CS knowledge here... if you have a great idea (99.9...% of people don't, even if they think they do!) you can turn it into a prototype and then turning the prototype into a real business can be more about business skills not coding skills, because an interesting idea that brings profit will always be scalable because you will be able to hire smart people to scale it for you. And at the end of the "day" it will be your choice whether you'll decide to play on the business side or coding side more.
If you're willing to come in as a "junior" developer then you will quickly progress based on the other experiences and value you can offer.
Don't get into thousand things. Start with basics - HTML, JavaScript and one of the scripting languages - PHP, Pearl, Ruby - anything. Pick one and stick to it. All are equally good. Then start making small projects. Make a tic tac toe game in JavaScript. See what difficulties you face, ask for help and solve the problem.
Register on sites like eLance and oDesk. See what kind of projects people post. You don't have to bid - you will probably won't win a bid against a full time pro developer. But see what people are looking for, try to build it as your side project. Try to find an idea where people will pay.
Make a simple todo list app - almost every programmer makes one in his/her lifetime. Release it as a free web app. See the traction. Add features and you will learn more. Some day you will come across an idea that you think you can build and people will pay for.
Polish your programming. Don't worry about using the latest framework or knowing everything about a language. Just get the shit done.
Get started from today.
Now I am starting to venture into other languages like Ruby and C in my spare time and I am excited to see where I'll go next. I know you are older, but its a similar story. Really, as long as you are into it, you will catch up in no time. And once you do it for a job, you will never look back. If you need a boost, take some online courses, go to meetups, sign up for a web development bootcamp. Meet other people who do web, you will find that a lot of people doing it now didn't start life as a programmer either.
He started with some really basic books, but he switched to Codecademy some weeks ago and he really likes it!
Good luck! :)
Bloc offers a 12-week intensive online course: https://www.bloc.io/
The idea is basically to give you "minimum viable training", so that you can see whether a programming career is right for you, and then get paid to learn more while providing a valuable service to your employer.
I think Dev Bootcamp pioneered these "bootcamp"-style courses, but there are several of them now, and I've heard good things about them. Just make sure you do your due diligence, since with the recent media coverage, there are bound to be a few phoney scams trying to exploit people like you.
EDIT: Also, these courses are fairly new, and almost nobody in the industry has any experience with this style of teaching, except for the people closely involved with it. Most programmers will be useful sources of information about the things you need to know that these courses won't teach you, but we probably don't have a clue about the effectiveness of these courses. Take our opinions with a grain of salt.
The most crucial thing when learning programming languages is to have a very short feedback loop: build something in that language as soon as you know just enough to get by. The rest can be learned "just in time".
Go for it and good luck!
consistent learning every few days for a few months will set you to mastery in a year or so. good luck with learning!
Particularly the Wordpress advice. Wordpress is a good example of something where someone with no programming ability at all, but an interest in technical work, can gain some (marketable!) skills, and then segway into actual coding experience (PHP in this case).
But the short answer is, there has never been a better time when software development was more accessible to learn, or more useful and marketable, and both of those needles are moving in directions favorable to your interests!