top | item 6469425

Ask HN: I am 33. Is there still time to make a career in web development?

21 points| galfarragem | 12 years ago | reply

I have an architectural and design background and this slowly stalled my life once there is no money anymore in this field.

|My skills in computer science:

I have an amateur level of HTML and CSS (means, I can do most of stuff but I will take longer than the 'professional') and have few notions of javascript. General notions of computer science, programmming languages (Autolisp - Autocad script language).

|General skills:

I'm above average with numbers and above average in UX design, Photoshop and Illustrator. I am interested in web development and everything related.

|Questions:

1) Am I still in time of making a career in Web development? Be realistic, you don't need be political correct. For example, would you hire me?

2) What could be my niche market in your opinion?

3) What skills to should I improve? Java and C I feel to old to learn it; PHP seems already past for me; Ruby/Rails or objective C probably would be easier to catch up and compete; an excellent level of Javascript could be relevant to have a position in the market.

23 comments

order
[+] hiccup|12 years ago|reply
I talked with a man who worked in a client's company. He's 60+ years old and doing front end development in Javascript. I asked him how he managed to work in an office where the average developer age is probably 26.

Here's what he said to get his career rebooted:

1) Never think about your age

2) Use the language you want to work in. He did a lot of little project for non-profits. Great experience, but also covered the employment gaps in his resume.

3) Become an expert - answer questions on ExpertExchange (he started 8 years ago, pre StackOverlow). He became one of the top JS guys on that site

4) Put up resources on a personal site - his EE posts would link to his personal site with CSS, HTML, and JS examples. I checked it out and a lot were still applicable. Date formatting and regex's never go out of style.

5) Hustle for that first job - he literally opened the phone book and called around for work. After his expertise became better known and the market for frontend work got hot, recruiters sought him out. All those EE links to his personal site helped his Google ranking.

So go do it. Don't blame your age. Work harder.

[+] Briguy2k|12 years ago|reply
Subtract 6 years, and I'm in almost your exact shoes. I'm a professionally trained musician and music teacher, and while I love those activities and would never want to stop doing them, I always wanted to expand my abilities to include software design as well (plus, regular and/or better pay is always a wonderful perk). So I'm in the middle of doing what so many on here already suggested:

1)MOOCS (Coursera, edx) 2)Crowdsourced resources (wikibooks) 3)Free/freemium online books (http://programming-motherfucker.com/) 4)Many open-source communities (git-hub, stackexchange)

As far as the learning is concerned, constantly switching between different sources above to hear the same information from different resources and taught in different styles is crucial I think. I know this from my formal teaching background and feel comfortable with the learning part of this entire venture.

The second part of your questions though about finding work I'm not so sure about as I'm not there yet. I personally have chosen python as my language to learn because I've found that:

1)It makes sense to me after trying out a couple of different languages on codeacademy 2)The clean syntax and forced indenting structure allows me to focus more on the problem domain then the language itself (or which indenting/bracket style to use). This can be said of any language I'm sure as people have different preferences and perspectives, but this was clearly evident to me early on. 3)With the discovery of Django and so many other python based tools, I realized that I could actually achieve a lot by specializing in python. But of course I need to include html, css, and perhaps random java script as well to get a dynamic web page going, but at least Django frees me from needing to get into php. 4)I personally have a creative mind and less of an engineering mind. Learning C or some other lower level language would drive me nuts I think AS A FIRST LANGUAGE. I'm able to casually learn about different algorithms and data structures in python without having to fully master them just to make a basic program (as I would in C for example).

Now my goals might be different from you, I have a long list of projects and ideas that I would like to do on my own that could possibly make money, so I'm making all my decisions from a passion perspective, not as a supply/demand one. But maybe that's not quite a bad idea after all? You're already starting from scratch, why not try your own projects first doing them in exactly the languages you want to do them in? I've always felt that there are always plenty of people doing the "standard learning" track for the "standard jobs" that the market demands. If your trying to follow a market, you'll always be at the whim of the market. Why not make your own market?

I always come back to this quote:

“Don’t ask what the world needs. Ask what makes you come alive, and go do it. Because what the world needs is people who have come alive.”

― Howard Thurman

[+] galfarragem|12 years ago|reply
Add 6 years and you will think like me. I used to think exactly like you. Believe me, the word "passion" was the most important in my dictionary... and still is but I'm adapting my passion to the market. I spent last years rowing against the flow and my life completely stalled (AKA not enough money to give the next step and start a family). The price/risk of that former 'passion' is too high. At least for me.
[+] memracom|12 years ago|reply
You have a VERY good background to make a go of website development. If I were in your shoes I would focus, at first, on sites that are mostly UI/UX. Make them work well and look good. On the programming side, focus on Javascript. This will pay off in building more responsive sites, for instance reactive programming, and it can also be used on the background. Because of your background, I think that you should focus on using node.js for the backend components. In particular use the Express framework because it is lightweight and therefore easier to learn. Do spend some time on pure Javascript learning such as reading Javascript, The Good Parts and doing Javascript tutorials and code katas.

P.S. I'm in my 50's and I learn a new language every couple of years. 33 is young. On the other hand, a 33 year old has lots of experience in other areas that can be leveraged to make learning faster.

[+] hrabago|12 years ago|reply
Your main problem would be getting your foot in the door. What happens after that is up to you, based on: * How well you do your job * Your ability to grow in the profession * Your ability to work with others

In other words, once you're in, you'll likely be judged based on factors everyone else is judged, which again means the problem is getting in.

To aid with that, you'd have to be realistic. Based on your skill level right now, it would be difficult to justify hiring you. You'd be competing against college graduates who already know item #3 above, some quite deeply, although in a book-smart kind of way.

So yes, I would recommend selecting a language and getting to know it enough to pass certification exams. Heck, get some certification, if only to prove that you're familiar with the general syntax. Don't get disillusioned though that certification is a plus - it's a poor substitute to proof that you spent four years formally studying Computer Science in a structured manner.

If you want an edge, go and actually build something and market yourself based on that. Yes, a software portfolio, like you're familiar with from your architecture and design background. That will give you an edge over college grads with just a degree.

But to reiterate my main point, your main problem is getting in the door. Once you're in, your age won't matter, only the stuff that everyone else is judged on will.

[+] galfarragem|12 years ago|reply
I think my edge could come from my experience in concept work mostly in large shopping center projects. Getting something from zero, that is without doubt my specialty (and the root of my problems in times where there is no growth in the world). That 'specialty' can lead me for 80 hours/week in one CS startup and to continue my stalled life. I am afraid of that 'detail'.
[+] 3minus1|12 years ago|reply
If I were in your shoes, I would concentrate on javascript. Any web development job you try to get will expect you to know javascript, and it's not going away anytime soon. Once you learn it, you can use it as a springboard for learning other languages. Do these things

1. Figure out had to add javascript code to a static html page. Implement functionality like showing/hiding content, simple animations, etc.

2. Figure out how to add jquery to a static html page. Jquery is incredibly popular javascript library that makes changing content on a web page much easier.

3. Learn how to run simple javascript scripts from the console using node.js. You don't have to have a website to run javascript.

4. Go to project euler, and write javascript programs to solve the problems there. Run your programs with node.js. You're going to have to learn about if statements, while loops, and for loops to solve these problems. It will force you to learn javascript.

5. Figure out how to use node.js as a server. Make a simple application that interacts with a server, for example a chat room application.

6. Put your code on github and deploy it on heroku for free. You now have built and deployed your own website. I think that looks pretty damn good.

Disclaimer: I have been a web developer for 3 years. I got my first job with a minor in Computer Science, so I never actually did what you're trying to do.

[+] galfarragem|12 years ago|reply
I will concentrate on javascript. Thank you, you helped me a lot. Thank you to all the others also.
[+] bhauer|12 years ago|reply
Your age is absolutely not a hindrance. To my eye, it's not even relevant.

What is relevant is how eager you are to learn the technologies you know you need to pick up in order to be an appealing candidate. Illustrate your eagerness to learn these things by building something personal using them and demonstrable to potential employers.

When I consider candidates that don't have the typical university degree or decided later in life to switch to web development, I am most impressed by those who've dived right in and aren't looking to me to take a gamble on their willingness to be committed to the new discipline they've chosen.

As for specific areas of focus, my advice would be to spend some time learning a modern language that is not necessarily what potential employers might use in real world projects. When I speak to candidates who have picked up Scala, Go, Haskell, or Clojure on their own just out of fun, I feel I'm talking to someone who simply likes the challenge of learning.

That's not to say ignore the more pragmatic languages—those more likely to have jobs in your area.

[+] esw|12 years ago|reply
I think the main thing is that this stuff is constantly changing, and you've got to have both a willingness and the time to stay on top of it. I don't feel that I'm any less equipped to learn new things at 40, but the external responsibilities that I have now (notably family) have significantly cut down on my free time, which is when I usually play around with new languages and frameworks.
[+] lucasrp|12 years ago|reply
1) Yes. I'm 28 and began coding 6 months ago. I guess that the biggest challenge for people like us was how to get education. I couldnt spare 4 years of my life in a university. But MOOCs changed this. A few courses on edx/coursera, and will be ready to do great things.

2) I guess that, before you think in specialize into something, you must ask yourself what you must learn before that. You need to be confortable with databases and the infrastructure process (version control, deploying, testing, etc.)

Go look the SaaS course on EDx.

3) I recommend you start with python. It is easy to learn the basics and have a great community. You will find many libraries to help you achieve what you want, and your questions will be answered quickly in stackoverflow or something like that.

4) Again, MOOCs are the aswer. If you find time to be always doing 2 courses at the same time, in 6 times you'll be in grate shape. seriously.

[+] galfarragem|12 years ago|reply
I'm making MOOCs since the beginning of this year (not just computer related). I will not say that substitutes the university life (I had one teacher that used to say that college only worths for one thing: meet people) but it really opens your mind and expand your skills.

I agree with you: 2 courses at the same time is the sweet spot.

[+] electrichead|12 years ago|reply
I am 33 as well and have been working in web development for about 10 years. I still wonder the same thing, myself. An interesting thing about this field is that although things change constantly, there are concepts that are transferable from one to the other. If you build a good foundation on those things and keep trying to learn new things,your age never enters the equation.

Since you already have a design background, I think it would be well worth your while to just learn how to use HTML, CSS and javascript effectively. You should be able to learn them inside and out in comparatively short amount of time compared to something like objective-C. There is also a big market for designers who can work with code (script?).

[+] nickthemagicman|12 years ago|reply
I'm getting a degree in computer science started at 31 graduating the end of this year. There's lots of people in my program in their mid thirties and several in their early 40's.

I think that in my opinion you can learn what you need to know to be employable in comp sci in a few years, so by the time your 34 or 35 you'll have the tools you need to function in the field.

Experience is very ephemeral in this field because things change so rapidly.

You have a major advantage in web dev if you're good at design. I can code to the stars but I can't design my way out of a cardboard box so I'm always reliant on artists and designers.

[+] akbar501|12 years ago|reply
1. Yes 2. Find an area you are passionate about. Web dev is very broad. Do you like games, social, business software, news...Focus on learning to develop applications within the area you like / are passionate about. 3. This depends on whether you want to focus on the front end or back end

For the front end: HTML/CSS are fundamental skills, plus master JavaScript.

For the back end: You have a lot more choice. If I were in your position, I'd look at the job to developer ratio in the niche from #2 and then pick the one with the best ratio. Focus on that one language.

[+] pixelmade|12 years ago|reply
Yes, but web development is a mature industry and becoming commoditized. It's very difficult to differentiate based on quality, as most clients choose based on price. Source: I've been a web developer since 1995.

It's not really an industry I would recommend to anyone.

The only area where there will be growth is front-end development. I would only work "in-house", as opposed to working for agencies.

[+] naithemilkman|12 years ago|reply
1) Well I started learning when I was 28. Self employed as a web dev now

2) Frontend dev that knows Javascript

3) Javascript. Regardless of whatever serverside stack you decide to further pursue, every one of them still has to interact with js. Choose Python while you're at it.

[+] amavisca|12 years ago|reply
1 - Yes

2 - Front End Development, maybe

3 - Ruby/Python/JS/PHP. JS necessary for (2)

[+] bmelton|12 years ago|reply
When I turned 32, I decided to learn guitar. I was absolutely horribly. Atrocious. Ear-piercing.

Four years later, I recently sat down in a jam session with a buddy who asked me how long I'd been playing for, and was shocked to hear that it had only been as long as it had. I wouldn't consider myself especially good at guitar, or any faster at learning than the next guy, but I've stuck with it, and made sure to learn something every couple of days, with the idea that if I learned a couple of things per week, then over time, those weeks would add up, and I'd know something.

I'm still a million miles away from being a rock star, but I could, realistically, play guitar in a band on stage, if I needed to. Learning songs has gone from taking months to a few minutes, on average (highly depending on the song). All that, and I didn't start til I was 32.

As a 36 year old web developer by trade, the skills are comparable. Learning compounds over time, and you'll be able to put pieces together more efficiently the more you do it.

The most relevant advice I can give is to just start learning, and the best way to start learning is to start doing. There have been plenty of folks who went from nobody to hirable by building a pet project and learning the language in order to do so. To work at a startup, or small business, "being able to code well" is often less important than "being able to code a project to completion." Build a blog, then use it to blog about your coding progress. Share your trials and tribulations, and post all the code you write on Github. Do that, and you'll likely be coding pretty well within a year's time.

To sum up, yes, you still have plenty of time to crack into the field. No, I wouldn't hire you (at the moment).

As for your niche market, my guess would be that your architectural background should have bearing on it. A buddy of mine is a restaurant owner, and also a developer. Unsurprisingly, he's building analytical tools for restaurant owners. He could likely have built the app for any niche, but his domain expertise means that he understands the market far better than even a much better developer.

At some point in your prior career, I have to assume that you dealt with some pain point related to poor tools in the job. Make better tools. Make them be more usable, more UX oriented, and more attractive, then sell them to other architects who were likely to have experienced those same pain points.

As for skills to improve, I would start with Javascript. For 'catching up', you can use the same language in both the front and back ends with JS, and you already know a smattering, which will hopefully ease the learning curve somewhat.

Either way, good luck. What I can tell you, as an average learner, persistence is really the only thing that you need. Just like exercise, or learning guitar, it all seems hard at first, and all gets easier with time. All that is required is to not give up early on, and you will most undoubtedly become better and better over time.

[+] astrodust|12 years ago|reply
It's also worth stating that rarely do you try and do something so completely new you can't apply any of your other expertise to the problem. Architecture and software are not all that different in terms of how you are solving problems and coming up with creative solutions.

Someone learning guitar at 32 might be at a disadvantage compared to some kid that started jamming when seven, but that kid hasn't heard as much music, hasn't acquired any particular musical taste, and usually doesn't have the money to get the right equipment or training. They probably don't have any friends that they can call on for advice or to learn from, as any kids their age would be just as relatively clueless and anyone older would probably not have time to spare.

It's never "too late" to learn. Go for it.

[+] meerita|12 years ago|reply
Definetively. I've meet many people in my carrier and life itself that changed at late stage and they're breaking it now. It's never too late to do what you love, if you really, ofc.
[+] FridayWithJohn|12 years ago|reply
You ask three questions, I will address each of them.

1.) You are a little late as most people started this a little younger. However that means nothing as development changes so much, especially on the web side of things. For example PHP 5 (the only version you should use, not PHP4) only came out about 9 years ago. I would hire you but ONLY when I see your coding skills. (Tip: if you don't have a github account, get one now. It is free and then you can also get ahead with thousands of other developers. Also a "see me on github" on your CV will really stand out as a good thing.)

2.) It looks like you only have done HTML and CSS... both of these have changed so much that if you want to get serious with either of them you shouldn't really use them in the "traditional sense". By that I mean that you should rather use a framework that works out really nicely. Responsive design (works on all sized screens, mobile, iPad, etc) is currently a hot topic. Try out Foundation. It is a really cool framework for front end design. (and much easier to learn than Bootstrap) http://foundation.zurb.com/

3.) If you want to do actual programming, I would still recommend PHP. It is still the largest server side language... and hence more jobs available. Just some companies that use it: Google, Facebook, Wikipedia, Amazon and Apple. However whatever language you do end up using, if you want to get really good at it and get noticed in the job market find yourself a framework and get good at it. For PHP I would recommend symfony2 http://symfony.com/ as it has by far the largest community.

To sum up with, I would say that if you push yourself really hard, keep abreast with the technologies and most importantly practise coding you should be rather good in just a few years