I knew some HTML, CSS and PHP and had been setting up websites for family and friends. I started freelancing in addition to my day job. Moved to creating PHP web applications and taking on more and more advanced work.
I slowly picked up larger projects, better clients until I got to the point where I was freelancing full time. Now I have a few clients that keep me busy working remotely. I have had a few contract positions 3 to 6 months at a time but mainly it's been freelance since I made the switch.
It's lots of work, you're constantly learning and trying new things. If you enjoy that and have a knack for programming go for it.
I have interviewed with some local companies I wouldn't say I was passed over for younger employees, mainly just not a good fit not enough experience. I can see where some companies would prefer younger candidates.
I would say GO FOR IT but maybe learn/get back in the game by freelancing/keeping your day job. Unless you can afford to quit your day job during the transition.
I would also recommend learning full stack instead of just focussing on front end, it's becoming more blended anyway. Front end is moving toward React, Angular, and Vue.js and is as complex more tightly coupled to the backend.
Also I would focus on learning Laravel (PHP) or Rails (Ruby) I think these are higher paying with more job openings/interesting projects.
Laravel has a great ecosystem, check out LaraCasts.com.
Rails is great as well.
Good Luck with the transition.
I enjoyed civil engineering too, but there wasn't a lot of room for innovation, lots of things are cookie cutter in civil engineering, there is some room for creativity but not like developing web applications.
I did develop two software add-ons for Civil 3D that were released by Autodesk that gave me a taste of software development.
Oh yeah there was also the slight economic collapse where all development and construction stopped, civil engineering firms cut 75% of their staff and salaries stalled and shrank. So it wasn't really a choice I was just lucky I had the skills in place to make the leap over to software development. It wasn't easy but I'm much happier as a developer.
Part of the reason Civil Engineers go into Civil is because they are excited by the idea of making things (especially with computers). Part of the reason they leave, is after they see how frustratingly slow-paced it is, how poor communication is, and how ridiculous the number of times your project or work gets axed (not shelfed, axed!).
There is a concept in software engineering called reusable code. That concept is completely absent from CE. The entire industry works that way. And it seems backwards.
I am still holding out hope that one day this field will improve, and I may have a hand in it. But in all honesty, I see architects, surveyors, and software engineers doing a better job of revamping this industry than civil engineers ever can.
For me, I went back to school about 5 years after a liberal arts undergrad to get a BS in computer science, and it has worked out. I was about 27, but there were numerous men and women in my classes in their late 30's and early 40's, all making the switch to CS to keep their skills sharp and better support their families. Some had been lawyers, accountants, and other white collar jobs--and they decided to make the change anyway.
So, yes, it's common, and employers understand that people are coming to programming from many different paths/backgrounds these days. (At least the ones who aren't snobbish.)
Most importantly: use what you perceive as your weaknesses as your strengths. You know a ton about accounting. Use that!
Doing programming work that overlaps with your previous career will probably yield the highest immediate pay, since you have domain knowledge in that area already. (And why waste it?)
That would be my angle to get into programming: find a company that programs accounting systems/financial software of some sort and offer your skills. Their end-users are accountants who have the same problems/frustrations as you. Why not discuss with them and help solve those problems directly? Offer them what they don't have yet, and only you do.
And there's a LOT to be said for bringing the knowledge you have, and making something useful with it.
In my opinion, if you decide to switch, the best thing you can do is start practicing. Whether you learn from online courses, school, friends, or books matters less than how much time you spend practicing. Preferably, put as much of your own work as you can in a public repository (somewhere like github.com) so that people can see that you get things done.
You'll actually find that you'll be picking up stuff faster than younger people just starting out.
Since your interest is frontend dev, your main challenge would be wading through the sea of frameworks and tools.
Only personal experience, but: I found learning complex technical concepts far easier in my late 20's than I did as new college entrant at 18-19. Including all the math.
So, not sure why people like to say that you learn this stuff easier when you're younger. For me, it was exactly the opposite.
Is excellent if wanna do development, but why not apply your experience instead? Also in all this 10 years you have build some contacts to get your foot in.
I know that accounting and crud apps are not "sexy" and boring.
But you know what is worse and more boring?
Using js!
Jah, sorry, I can't resist.
But honestly most "front-end" work is not amazing at all.
Maybe building visualizations, charts and stuff like that. But pages and apps in front-end is alike build forms, but harder, more complicated and with less performance than native code.
---
I'm in the process of build a point-of-sale app, and I will envy to have you background instead, or have a partner with that skills.
So, I'm telling you:
You have valuable skills that are higher than Js. Js/html/css is just a tool (that pay, because the front-end work have become more crazy and requiere more effort triying to be somethings is not made for), but in itself not become yet-another-front-end-dev when you already have a better position to offer.
whatever you do, good luck.
So seek synergy. Pick a small problem, and solve it. Something useful is far more impressive than something flash, and can be quantified on a CV pretty well. Set a goal, and that should be something where multiple skills are combined.
Could be tough balancing time and conflicting needs, that's probably your biggest challenge. But you have your advantage of knowing something in-and-out, and learning as you get older gets faster and faster.
Don't forget backend. Also seek some understanding of creating RESTful APIs using a related framework, like if you're interested in front-end, probably JS, learn a JS back-end. I picked hapi on node, and really liked it.
I'm currently 35 and spent many years in biochemistry, and did a lot of coding on my own personal time (and am doing contract work currently). One of the frustrations is that going through the hiring process, I get a lot of accolades from the interviewers, and seem to do well to extraordinary on coding challenges - but there's something that I'm not "matching right". In several cases, I've been told that they were seeking "senior devs" even though I've been referred via an agency that should have filtered out all but "junior dev" positions.
I suggest getting insight into the "unwritten rules" of hiring, which is what I'm going to start to ask about. There is a myth that the valley (or indeed the world) is a meritocracy, but in reality, you have to 'figure out the game'. Good luck!
There is a huge range for front-end. You have people doing basically cut-up for marketing sites to people building front-ends that can scale up.
My four big buckets I look for from a Front-End are:
* Technical, can you make it work
* Maintainable, can someone else keep it running and update it
* Scalability, can you scale the solution up to millions of people (to be honest, most front-end don't need to worry about this)
* "Precog", can you anticipate the issues that arise from users and their wide range of browsers + OS + hardware
You'll be competing with younger folks for entry-level positions. I'd consider a portfolio of code or personal projects on Github/etc. that show your style, coding and otherwise.
Can you make the switch? It just totally depends on you. You will need to be aggressive in looking for work, you'll have to demonstrate you are qualified and you'll need to show people samples of work. The samples can be personal sites, little things you built, open source you contributed to whatever. You would be essentially a junior web dev, so your expectations of pay and position should be in line with that, if you accept those things and can do the work, absolutely you can make the switch.
What you do need is a passion or interest in this field. Age and/or work experience in other fields brings allot of advantages towards employees, something every 'totally new to working' all have yet to find out.
Frontend nowadays is very awesome, it is my day to day job as well (31 yr old), and I really enjoy it.
https://medium.freecodecamp.com/yes-im-56-and-learning-to-co...
The way I see it might not be how you see it. Your question reminds me about the joke with the writer who said he wants to become a doctor after retirement. - The conclusion of the joke was that to start a new career takes time.
I've coded my first "Hello World" at 26yo and now at 36 I'm working as an iOS contractor and making 6 digit figures (in £) and couldn't be more thankful to past me!
It is not something I would pursue on a whim: the grass is always greener and I assure you front end is a complete shit show, as sexy as it seems right now.
as for not being able to compete that is up to you, as long as you have solid skills and can prove it you your age wont matter.
1. Zed Shaw of the "Learn Python the Hard Way" said programmers are dime a dozen. What's really valuable is a programmer who has experience from another domain such as history, engineering, medicine etc (and accounting in your case). I cannot recall exactly where he said it but I remember reading it and chuckling to myself.
2. Are you sure you want front-end dev work? Why not back-end? Exactly what skills are in demand? I recommend you watch this video on state of tools available in web dev including front-end, back-end, and DevOps as of 2016. https://www.youtube.com/watch?v=sBzRwzY7G-k
I should warn that the shelf life of front-web dev skills seems to be much shorter than IT. In fact here's a list of tech skills, ordered with longest to shortest shelf life IMHO. Not sure about DevOps but my feeling is it has longer shelf life than programming...
IT > DevOps > Back-end > Front-end
Going into IT years ago, I knew I needed to keep learning new stuff to stay relevant. I slacked off a bit (due to family situation) and paid the price. With dev work, you need to spend even more time to learn new stuff to stay relevant. Often, you will have to spend your personal time to do so.
3. You should keep your day job as you try to break into coding. You don't want financial pressure to stress you out. And that means you will have to squeeze out every available hour of your life and devote it to studying/practicing. That means no weekend activities, no TV/video-game at night, etc. The less you do such things, the faster you can switch into dev career.
4. Do you have the environment that will allow you do real productive studying/coding/studying? If you have kids, can you avoid school pickup/dropoff? Will you have big chunks of time daily to devote to coding practice? Personally I need at minimum 30min - 1hr before my brain switches on and gets productive.
Basically your family around you have to pretend as if you had 2 full time jobs or you were studying for Bar exam or in med school. And they should expect what 6 months to a year of this.
Do you have a desk where you can set up 2 x 24" monitors and your laptop with a comfortable chair? Or maybe a standup desk?
5. Get github and own web server (DigitalOcean, Linode or Amazon AWS) going and start posting your work. Curate what you post on Github. I use bitbucket for personal projects and use github only to post what's reasonably presentable. You probably don't have contacts in the industry. And that means finding a job almost exclusively based on job postings. And because of your lack of prior experience in the industry, you will often get passed over for others who do. So your secret and only weapon would be examples of your work that is easily accessible to recruiter/hiring-manager. Especially for dev work as there's no certifications to get like in Windows or Linux world.
Setting up github/bitbucket means learning Git. Not really coding but you will need to know it for a dev work nonetheless.
Setting up website on Linux to host your code is another non-coding task but still valuable skill to have.
6. Your first job as a dev may not be that dream job. What I've learned is that jobs posted on jobsites almost always have more negatives than positives. If it was really a desirable job with good environment, someone would've referred their friend/ex-coworker. So set your expectation accordingly for your first dev work. You can either turn it into a better job or move on to a better job/company. Whether the position is discouraging or not, once you get in, kick as_. That will open more doors, either more responsibility, or a different company or even freelance work.
---
Epilogue
I started down the path of switching from IT to dev because I wanted freedom of remote work, freelance, start a product/website to make income on the side, etc. None of that has come to fruition except for remote work but no regrets. I no longer have to open boxes of laptops, stick on inventory tag and add it to inventory excel list, get interrupted with help requests every 10 min, or worry about where to keep spare packing material (because manager wants tidy work space but not providing adequate storage space) to have available for overnighting that laptop to replace a broken laptop of a remote worker.
Well there I go, spent another hour doing something else other than practicing coding.