I work for a company in the automotive tech industry ... as a Technical Editor for the Technical Service Bulletin team and decided that now that I know I'm capable of doing tedious work I should make a lateral move into the Information Technology industry. I have wasted a lot of time finding a starting point. I have purchased programming and development books, and online courses from udemy.com. I have currently decided to start with Head First HTML and CSS 2nd edition including HTML5. Last week I attended an HTML5 fireside chat featuring Peter Lubbers of the Google Chrome Team, and spoke with a guy leading a Drupal meet up who suggested I give Drupal a shot as a career move. I am 46 years old and know I have to learn something good and relatively fast. In your opinion, should I invest the time to learn Drupal? I am pretty confident I would like to be a programmer, but this HTML5 is intriguing in that it seems I will be able to do both including Android apps. He suggests I just attend the functions and get involved in open source projects and eventually someone will want to hire me, and not to waste the time and money to get a BS as a Software Engineer.
Hi, Robyn, thanks for the question!
First of all, there are many different paths to becoming a professional software developer. So the quick answer is, yes -- all of these are valuable activities. Our team has 8 people regularly in working on Drupal sites, and their backgrounds vary wildly. 3 have gone to school for it -- the rest of us have learned through experience. Two of us have liberal arts degrees.
What should you do? That I can't tell you. But I can tell you what I look for, as an employer and a development leader.
Let me start by rephrasing your questions:
- HTML5 is really cool -- should I learn it?
- I heard learning Drupal is a good career move. Should I learn it?
- Is networking a good way to get hired?
- How can open source help me get a job?
- Is a BS in software engineering a waste of time?
Here are my answers:
HTML5 is really cool -- should I learn it?
If you're working in the web today, you really do need to be up on HTML 5, what it is, what it means for the future, what's driving its adoption. The problem is, you can't just point to something and say "that's HTML 5, now go learn it!"
HTML 5 is an abstract collection of technologies with a huge amount of disagreement on how its implemented. Generally, when I think of HTML 5, here's what I think of:
- Additional HTML elements that attempt to annotate the structure of content, in addition to just the formatting/display of it. Things like "section," "article," "video."
- Lots of new CSS properties and selectors, with an attempt to make browsers better support them.
- New technologies getting added to the browser to make it possible to build apps that can do more, without requiring plugins like Flash or Java. Things like offline storage, native video/audio playback, support for geolocation, canvas.
I'd say there are two key things that are driving the rapid adoption of HTML5: the refusal of Apple to support Flash on its devices, and the widespread adoption of Webkit browsers on pretty much all modern platforms, with a rapid release/update cycle.
So yes, I would say spending some time figuring out HTML 5 and putting it to use is a great thing to do, if you're looking to get hired.
At Freelock, our themers and people designing interfaces with usablity in mind are the people paying the most attention to HTML 5. If you'd like to be solving interface challenges on mobile devices as well as web sites, HTML 5 is where it's at.
It is an interface toolset, though -- it's not all you need to build a web application. It's not the entire picture, though it's a necessary part of any forward-looking company involved in the web.
I heard learning Drupal is a good career move. Should I learn it?
Drupal is, I would argue, the single biggest Open Source web application success story. Not only has it gotten widespread adoption, it has spun off an entire ecosystem of thriving support companies and talent. We've seen this kind of success with Linux, of course, with companies like Red Hat and Canonical distributing it. We've seen it with Mozilla, with Firefox and Thunderbird. We've seen it with MySQL getting purchased for over $1B a few years back.
Drupal is in use by thousands of government agencies around the world, by large enterprises, by small companies, and everything in between. Drupal conventions draw thousands of attendees multiple times a year.
And the world is hungry for Drupal talent, and will pay very well if you can show you know what you're doing.
There are a bunch of challenges here, though.
One is, it's very hard for somebody who doesn't already have Drupal experience to be able to tell whether somebody knows it or not. We've gotten a ton of business from customers who tried building a site with vendors who claimed to know Drupal but led them into a dead end. Drupal is in many ways an enterprise application and, while simple sites can be done simply, large sites tend to take larger budgets than people expect.
See my Drupal sucks stories for more.
In general: Drupal is the complete package for solving business problems, and it's seeing huge growth in the marketplace. Companies that need Drupal help really need it, and there's a shortage of talent, so you will get paid well if you can learn it and demonstrate competence.
One thing about Drupal: while being a programmer is very helpful, it's not entirely necessary -- see my story on Drupal roles for more.
Is networking a good way to get hired?
Quite possibly. It's certainly necessary if you want to pick up freelance work, or perhaps find more speculative projects like working for a startup. Our Seattle Drupal User Group meets the third Thursday of each month, and people regularly recruit there -- your local meetups might vary. You can certainly learn a ton by attending these.
How can open source help me get a job?
Here's where I put on my employer hat: Open Source project experience is a fantastic way to get yourself noticed, and hired. I don't know why more people don't do this.
If you take the time to get involved in a project, contribute support, documentation, participate on forums/mailing lists, answer questions for newbies, do some testing, you will get noticed. When you start contributing actual patches and code, if it's of any quality, you'll probably get hired immediately.
The thing about open source, is all your involvement is public. A potential employer can see not only what you contribute but how you work with others, what your writing skills are like, what your strengths and weaknesses are, and much more. I would say for an employer who understands open source, participation in an open source project is a far better demonstration of skills, ability, and fit than professional experience -- you never know how much somebody contributed at a previous job, and even references can be suspect if it's not from somebody you know.
The best advice I can give anybody interested in working in technology is to pick an open source project that interests you, and get involved. You won't be unemployed for long -- unless you have no social skills, no talent, and no ability to learn.
Is a BS in software engineering a waste of time?
Maybe. (Ok, I'm about to get thwacked by my school-going employees, along with my wife who has far more schooling than I do!)
I think school is one completely valid way to gaining knowledge about the field. Especially some fundamentals of what's going on under the hood, which can help you figure out how to solve particularly thorny issues, or design a system that suffers fewer flaws.
From an employer point of view, it definitely demonstrates a level of commitment to the field -- if somebody has spent years of her life studying the topic, and is still fired up to spend her time coding, that's a good hire -- assuming she has some results to show for it.
But it's far from the only way to learn how to do the job. I really think personality has more to do with being a successful developer on our team than prior training. I'm looking for people who can hit the ground running on some tasks that I know we need done, who can learn how to do more. Key traits include ability to work well on a team, a strong sense of customer advocacy, a detail-oriented perspective, and a willingness and ability to learn quickly.
Ultimately, it's all about results. Our customers hire us for results, I hire developers for results. Our business success depends upon results. If I think you can get me results, I'll definitely consider adding you to the team. If you can show me results you've already gotten, and even better, if I can see the interactions you had along the way to see how quickly you figured it out, that gives me a lot more confidence in bringing you on board.