I'm 28 and frustrated – can I still have programming career?
But I wanna enter IT industry, I've been around computers all my life (started on Commodore 64). Since I was 13 I dabbled with web development and I can set up blogs/static sites pretty easily. In January I started to learn to program in Python which you could say was my first real programming experience (I guess HTML, CSS doesn't count). It's going slow since I do it after work, I don't know anyone now who's a programmer so I go to SO all the time.
Now I'm 28, doing manual labour and dreaming about being a developer. I am just worried that I'm not gonna cut it ... I cannot afford to go study computer science but I have motivation to learn on my own.
I would be SO happy if I could do some entry-level programming. I'd be grateful for all the boring stuff programmers complain about - I'd even take smaller salary just to have experience (but I need to earn to pay for rent).
I just don't know how to do it. I'm feeling kind of scared and depressed about life.
TL;DR I really want to become programmer but I am worried it's too late for me.
40 comments
[ 4.8 ms ] story [ 86.7 ms ] threadI'd be very interested to see what others have to say about this, I doubt if it is a very uncommon problem at the moment.
Why i'm saying this? well ...
I don't have a CS degree, matter of fact i dropped out of university, i got hired three times as a developer in three different companies with a very good salary (compared to Palestine standards, since i live in Palestine), i switched jobs because i hated working for someone, so the last job i quit i decided to start my own startup, and now i am into a lot of programming projects.
I program in Ruby, JavaScript, PHP, C#, ActionScript, Java, and i play with other languages, i taught my self all that, so my friend you can do this and even do better, jut believe in your skills.
Consider: if you devoted yourself to reading and working on open-source projects or even some contracting, going to workshops/codeathons, local user groups, and etc., you could built up some expertise and even a pretty decent portfolio of work within a few short years. Give it even just 2-3 years of being disciplined with it, and you could very possibly have more to show for it than some who have been coasting in the industry for far longer. After 3 years, you would be only 31, and you could have a programming career for 20-30 years, if you so desired.
Bottom line: you can do it. But you gotta be ready to work hard and jump into things.
I got a degree in an unrelated field, did a lot of different things including manual labor, being a grower on a farm, working on a concrete crew etc. I had a construction contracting business with employees for over 5 years that fed me but eventually went bust. I then got a job as a project manager for a large outfit and was paid fairly well for nearly 10 years. It was extremely stressful with long hours and lots of travel.
I wanted to learn more about programming but just didn't have the time nor discipline. So finally, with a bit of money saved up, I just flat quit about 3 years ago. I started learning Python, Linux, SQL and JavaScript. All day every day. I wrote a bunch of junky projects, found out why they were junky, and did them better next time. I did odds and ends, fixed computers for folks here and there, cut my standard of living back, and kept reading and learning.
I got a break when some people I knew with a mission critical Access business application asked if I could help fix it. I re-wrote it using HTML, Python and Sqlite, set it up on a server, and they could access it from home. They were tickled pink and I got a little more work. It still wasn't enough to pay all the bills though. But I had a number of projects at this point. None on github, but that's not my world. A few weeks ago I saw an ad for a web developer at a large institution here in town (small town...far away from the tech centers) redoing their internal web applications. I went in, talked to the manager (an old perl programmer), gave him links to a few of my projects, (they got a lot better over the years), some sample code and was hired just like that. I start on Monday. I won't make as much initially as I did project managing but hey.... I'm excited. I have the programming bug and it's all I want to do. And I'm an old guy comparatively. So yes, it can be done.....
All you need to do is just tweak your mindset and start believing in yourself and then the real magic happens.
For now, I think I could focus on web development since I can setup Wordpress blogs or static pages and tweak CSS. My goal would be to become mobile app programmer/embedded programmer. So I thought about learning Swift - it's new I know but it feels a bit like Python.
I want to treat my self-teaching as something serious - set aside at least 10h weekly which I think I can do. It's just sad feeling for me ... new city, totally new job. But you all are encouraging while also setting real expectations = I'm determined to do this.
I will try to figure this out without CS degree. Taking a year off of work just to learn programming is something I might be able to do financially, I can just move out of Canada back home where it's 5x less expensive or to South East Asia where it's even less to focus on this.
I think the reason why I fear this is because I have no connection to other programmers. I am not shy, actually quite opposite, I have "cool" hobbies (film making, bmx bikes, music) but smart people are kind of intimidating, even more so when I'd like to discuss my projects with them.
Anyway, so far I programmed this little CLI utility (just to paint you a picture how "far" I've come from non-programming to newbie since Jan) -> https://pypi.python.org/pypi?name=flashCardStudy&version=1.0...
Anyway I want to thank everyone for their input. I discussed how frustrated I am with my life with my girlfriend and she totally supports me - she'd be willing to push me through school = universities are "free" (paid from taxes) in my country so I just need money for rent and food. We have CS programmes where you obtain bachelor degree in three years but it's heavily connected to math which I kinda suck at. We'll see.
Learn by doing.
And if you feel now or in the future that you'd like a dash of fundamentals to go with your programming practice, you have options beyond those of traditional education. For example, Udacity has a great Introduction to Computer Science online class:
https://www.udacity.com/course/cs101
The free courseware includes the lectures and auto-graded exercises. It's Python-based, but goes beyond programming languages to touch on foundational CS concepts in general. Recommended.
God chose me to write the operating system. He gave me divine intellect.
A psychologist-nigger cannot judge.
All you needis one number -- SAT score. I had a 1440 SAT score. I was one of 7 national merit scholars in my freshman class of 10,000 at ASU. I got a masters in electrical engineering.
I am now God's high priest. I do miracles.
You're such a nigger that you do not know what a random number is.
NIST random number beacon is absolute proof of God. Kill yerself for being so stupid.
-----
God's world is perfectly just. HIghs and lows balance. Pride before a fall and humility before honors.
My construction job earned me the exaulted job at Ticketmaster. Highs and lows balance. Humility is balanced with exaultedness.
The secret to getting high status? Humble yourself.
Angels walk around and get their jollies .
----
There were 42,000 students on the ASU campus when I was there. I said 10,000 Freshman -- I don't know for sure. Left out Grad Students but Freshman have not been weeded out, but I just thought of community college transfers. I think 10,000 is the right number for Freshman.
As a failed entrepreneur in India i came to Singapore as a Mechanical engineer in 2006 and observed that IT was paying far better salary than mechanical and immediately went back to India after i had got my permanent residency for a 3 months study and came back and got a job in IT by telling my Hiring Manager to give me any salary for 3 months and if i am able to deliver give me good salary and was able to deliver.
Once i entered IT field i grew to senior project manager and spent too much time managing other developers and got hit by the start-up bug in 2008.
Unfortunately even though i was very technical, i did not have any programming experience and had to pick up everything by starting again.
If i can pick up again at 41 you can definitely pick up programming at 28.
The addictive part of programming is the problem solving aspect and the boring part is the actual writing (validation, idiot proofing, re-factoring) of good programs.
If you spend more time on the Problem solving aspects of programming, you will be able to learn more faster. Ex. Since you are working in construction, does your company require any useful information to be captured in a database using a website which they are currently doing in excel. Solve these types of problems and your skill will improve.
Find a problem to solve and solve it yourself by programming you will find it is faster and more interesting and you will persevere and ultimately succeed.
The problem gives you focus and solving the problem will give you skill.
I'm not sure what that means :) can you explain or give examples?
Any advice?
My advice - just get in IT. Don't mind starting from the bottom, in the grand scheme of things 2-3 years of reduced salary is nothing. Look for a job in the IT of your field, for example, since I had financial background it was easy for me to get a job in financial BI, but I could get a job in any financial IT system as helpdesk, PS etc. To get this job you might have to get into a course or even learn some new skills at home after work. If you want specific ideas you can write here or email me your experience.
Since I'm currently self-employed, but business is a bit slow atm, I may be in a position to do something like that. I've been building sites, scripts, mysql dbs etc on an amateur level since I was 15, so I think I could pick up this stuff quickly.
I will take you up on the offer and email (is it username @gmail?) you as I could definitely use some guidance from someone who's been there. First I'll be doing more research to get caught up so as not to waste your time. Thanks!
I'm so impressed with how it has turned out, I'm looking to make my next hire from the next batch of recruits.
If you can't afford a crash course like the one I mentioned, try Code Academy and Treehouse.
It is definitely not too late for you!
As you are in a manual job, I think the end of the day you will not be so tired mentally, and you will have more energy to program stuff you like. In a company, probably, and most in the start of you career, you will got more boring stuff to do, and you will cannot choose what you want to do. Have you thought about this?
Beside of all of this, you need to choose what do you really like to do, if everything goes wrong, you can change again. Your experience will never be lost. Good luck!
That being said, as someone below mentions, I am TERRIFIED that even though I spend most of my free time coding, it will be far less enjoyable as a full-time career. But, on the flip side, I really do enjoy creating and building things with code.
I hate testing, I rather not work with someone else's code, etc. I love building. I would just have to set myself up to work for companies that are in the building stage where I am constantly working on something new. I think that can certainly be done.
Here is what it comes down to for me and why I am heading in this direction and why it is never too late:
- I have dreams that involve technology (building things, running my own company)
- If my dreams fail, what profession is going to set my up for long-term success and is going to be sustainable for the next 30 years. And I rather do it now at ~28 than regret not doing it in another 5 years. (Engineering)
- I want to work in an industry that is moving the world forward with extremely intelligent people. (Goes back to, my job means nothing.)
- And most importantly, there are examples and inspirations all over the world that show why it is never to late and that you can do what you put your mind to. The human mind and body is an unbelievable specimen. It will be hard, but you just have to decide. Just decide and go do it. Don't waste time because life is pathetically short. And you can be whoever you want to be.
It is your choice to wake up with a smile on your face everyday and to put a smile on other's faces. We all have to work to live, but what you do outside of your profession and how you have fun with your profession is what it is all about.
https://www.youtube.com/watch?v=g-jwWYX7Jlo
I'm 31 and just started to learn, I do get a little frustrated at times, but ultimately I know I'm good enough to get to the level of getting hired somewhere. The more you work on little side projects and ask questions, the more you realize that it is within reach.
When I was in grad school, I was 21, most of my colleagues were 30 and a couple in their 40s, who wanted to be professors. Just go after what you want and have fun while doing it.
It reminds of exactly how I felt two years ago, before I quit my job chopping up bloody cows at a meatworks and "became" a programmer. If I can do it, so can you!
Like you, I thought my lack of connections or programming friends was the biggest hurdle. I came up with the following plan to get started:
1. Build five small apps that I can put on my resume, and are built for some specific end-user (or group). 2. Regularly contribute to an open source project I believe in 3. Attend programming meetups to be around "programming people" (I attended Python and Functional Programming meetups)
I did not spend time on stackoverflow or blogging about code because they weren't the biggest thing I could do to get business. They were part of my plan originally but someone pointed this out and I took them off.
To build my resume I would build demos for small job adverts on Elance. I wouldn't apply for the job, only slowly complete it and put it on my resume so I appeared valuable. Later, I earned $1,350 over 5 months, before a small startup in Australia found my resume, liked the look of it, and asked me to join their team (earning more money that I've earned in my whole life!).
I didn't make any friends at the meetups but I'm 100% SURE you could. The groups were sponsored by local software companies, who provided office space and pizza in return for advertising their job openings. Other attendees would let everyone know about openings at their own company etc. The friendly, honest vibe will give you a much better chance than an interview, where there's a ton of pressure on the interviewer to pick a good person.
Read this, it's a great discussion about getting hired without "on the job experience": http://www.quora.com/Computer-Programming/If-programmers-are...
Also read this, don't get scared by the high level answers: http://www.quora.com/Programming-Interviews/Whats-the-best-w... - While you should definitely try learn as much as you can, at your stage you should concentrate on demonstrating your creativity, problem solving, willingness to work hard and ability to get results. Those questions are for programmers with high salaries on the line (but definitely read them)
Ramit Sethi's Earn1K course also helped. It taught me to communicate, sell my skills and find freelance work: http://www.iwillteachyoutoberich.com/blog/announcing-the-ear... (It paid for itself in 3 months)
The funnest way I've ever seen to do this (but expensive) is to completely immerse yourself during a programming bootcamp and surround yourself with the industry and like-minded people for a few weeks. Check out the following thread and scroll down to "Physical Academies": http://www.quora.com/Learning-to-Program/What-are-the-best-w...
Edit: If you've got time for a podcast, here's the story of a hollywood filmmaker (Jesse Lawler) who quit his job during the recession, became a programmer, and now runs a successful development agency: http://www.tropicalmba.com/distributed/ (I liked the interview so much that I emailed him my "plan" back when I started. He gave me great advice and helped me refine my three steps above :)
Wow, sorry I babbled quite a b...
The answer is - probably yes. I built a Linkedin profile and taught myself to use Github and created some projects and published some wordpress plugins over a couple of years. Since I also had a graphics degree (apparently worthless), I made some logos and a couple of wordpress sites for people, for pocket change. Nothing much has happened yet - occasional freelance work and I'm interning at a startup but, you know, it's probably never as hopeless as you think.
I'm building my first app now. And it has been delayed as hell (already cost me one year full time on it, my family live on our previous savings) since I'm the only one to work on it. There are just too many things needed to be done. UI design, information architecture, strategy... The most challenging part is writing code for both ends. I have almost zero knowledge of programming. Even most of the tasks/concepts seems easy, however, there are simply too many to learn and practise. It goes worse when they come together. But I still want to ship my app, because I want to use it and I'm fascinating to test the idea. I want to see the result. Even with the worst result, I'll gain enough skills and cases to start a career in programming.
So just hang in there, no one is able to learn programming for you. If you don't fix question A today, it will be still there tomorrow and get in your way. Little by little, I think you'll see some results in 6 months. It's not a short period. But compared with our life span, it is worth it. Like others said, building something is a good way to have a learning/practice path. Good luck to you and all fellows in the same boat.
1. How server works
2. Http related concepts
3. Auth mechanism and password security, which encoding method to go
4. Database options, neo4j/mongodb/sql
5. Language options, ruby/js/golang
6. Framework options, emberjs/flask/martini/rails
7. Testing
Above are just some challenges I faced. As I mentioned previously, a single part in any field is not difficult to grasp, but to understand X, learners like me probably have to go further to have some idea of prerequisite knowledge. The time and energy on this can not be neglected. It also takes time to have new knowledge fully absorbed (or to a useful level). Before that, things can be chaos in my mind.
Perhaps my way to learn and practise is not very efficient. I did make progress, though. It's just a bit slow. I'm about to finish my client-side coding in a couple of months. Hopefully, I can ship before winter.
[Edit] Format revised