|
Like others have said, leverage your domain expertise as much as you can.
You may find it difficult to find a job with only a junior programmer skillset in your arsenal. But programming skills combined with an (extensive?) domain knowledge and other skills you've already acquired may tip the scales in your favor.
In any case, learning a programming language is not the hardest thing you'll face. Especially since you have at least some background in programming. IMO the real issue is to learn to solve problems, implement your design (solution to the problem) with the language / toolset you're using, and learning to write clear, maintainable code (i.e. to organize your code).
One approach you may consider:
- write a useful program related to the domain you know a lot about (and your potential employers know at least something about)
- start with it as soon as possible.
- publish it at the GitHub.
This approach has its pros and cons. Here's just a few:
+ it is easier to ask help if others can see your code
+ you can ask more experienced people to evaluate your code (and give you advice on how to proceed.)
+ when you apply jobs, you have something real to show for
+ it enforces you to pay attention to practical issues
+ you'll learn your tools in process
- you'll better not show a crappy code to your potential employers, so
- this is very demanding and the learning curve is steep
- it is hard to pick a problem to solve (not too simple, not too big/complex)
Also, the time you have given to yourself (a year), is a stretch, even if you make learning this stuff your 'day job'. I guess its not entirely impossible, but man, you better not count the hours.
I am experienced programmer (20+ years), but I still learn a lot by reading (good and bad) code other people wrote. You can find good open source projects from the GitHub for this purpose. Maybe even a one that is somehow related to the problem you'll decide to work on.
Finally, in your position I would familiarize myself with TDD (test driven development) at least to some degree. Not because you'd need to learn about testing as such (you'll need to, at some point), and not because every employer expects that (they don't), but because it is a good way (IMO) to learn practical problem solving and drive home some important aspects of software design in general. (Even nobody expects a junior programmer to be able to design even a modest scale production quality software system, you'll inevitably do small scale design every time you write code).
Hope this gives you something to think about, even if you'll end up doing something entirely different.
modified 11-Aug-21 6:28am.
|
|
|
|
|
Learn something like Python or Java and go teach a high school class. You only have to work 9 month out of the year and you will have your summers off. You don't have to be an expert -- after all you are only teaching high school kids. Have fun with it. "Da doo ron-ron-ron, Da doo ron-ron" (From the movie Stripes)
~d~
|
|
|
|
|
etkid84 wrote: You don't have to be an expert -- after all you are only teaching high school kids. As there were no high school kids that could beat the hell out of many of the users here...
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Yeah, except I have neither a university degree or teaching credential - both of which are required to teach in high school. And you don't get to teach, like, just one course.
I love the thinking, bit its just not practical.
|
|
|
|
|
|
This answer is going to be different than most you would find here.
You mentioned that you learnt RPG IV in school.
That is a language in use on IBM AS/400 (now, iSeries) computers.
Billions of lines of code exist in that language.
The iSeries computer systems are treasured by companies that use it but they cannot find replacement programmers, just like you can’t find COBOL programmers anymore.
Check out the local computing scene. See if you find any companies using the iSeries computers. If you find one, talk to them about an opportunity to prove yourself as a competent RPG IV programmer. Look for AS/400 users groups and such fora to find out who these companies might be.
They may be desperate enough to give you a chance.
If they do, you will be set for life and will not have to fear competition from young whippersnappers with resumes sporting Python, C++, Java, Clojure, Go, Rust, etc.
Best of luck in your endeavors.
|
|
|
|
|
How quickly do you want to make this change, and how much effort are you willing to do?
It might be an idea to get yourself involved in some medium to high profile open source projects first before attempting to turn it into a job.
Being knowledgeable in an open source product is likely to open more doors than simply saying "I've done a C# boot camp". To be honest, the code itself is easy enough to learn (if you've got the right mindset), the difficulty is never explaining what 'var i = 1;' done. The difficulty comes from trying to get a person into a coding mindset which works well with others (rarely are projects done in total isolation).
As for choice of language, look at the job boards and determine what people are hiring. Talk to those in the industry in your area. Just because C# / Java / "insert cool language here" is popular on a world wide scale, doesn't mean that "insert legacy language here" isn't the language of choice in your city.
Finally, are you really sure you want to be a programmer? The IT industry has our fair share of boring soul crushing jobs just ready to put a warm body into for 6 months. You might not find the grass as green over here as you first hoped. Whilst my first job was interesting (and I was lucky to fall into that job) it took me a good 4 years to move into something that was both interesting and paid a half decent amount. Whilst I don't know your age (extrapolating from what you've said, I'd guess early 50's at the youngest) you may find that you don't hit any of the really interesting jobs before it's time to retire. As others have said, ageism is rife in the industry and you may find that doors are closed even after you've put in the work to get into the industry.
|
|
|
|
|
Sounds like you could have gone to the same 'technical college' as I did
As a hiring manager myself, I wouldn't be averse to taking on somebody in your position, but would need to see some evidence of your commitment. The easiest way to demonstrate that is by developing a working application that you can show off. For example, a browser-based application that does something vaguely useful, and demonstrates that you can create a UI that does stuff with a database.
I wish you all the very best in your career change, and hope you find your way to something that elevates your soul instead of crushing it!
|
|
|
|
|
I will suggest to focus on a stack, more than languages.
As example backend with C# and Asp.Net Core Web APIs + frontend with React and Typescript (and css/html with Bootstrap or Material).
For Frontend Angular + Typescript is also a good option, but more enterprise and take more time to learn, and less "sellable" for you.
You can find many good blogs or videos on these topics on Microsoft websites and pluralsight, for example. Don't waste time with thousand of blogs teaching one specific thing, but focus on full-courses, as it will be easier to you to catch up all this complex stuff (today you need a huge stack for a basic "Hello world").
Then build a hobby-project to learn the real coding, as reading a book or watching videos or doing small exercises are not useful to get a job or succeed in an interview. Publish it on github. Start to contact HR and companies: now you can show them what are you able to do.
I hope this helps
|
|
|
|
|
Hi
I took a 25 year break from work while raising my kids. I had been on the leading edge of programming when I left, and I kept my hand in a bit by web design for trades (dance classes and the like), and I have a BS in Mechanical Engineering, so I was hopeful when I began my search. I set up my LinkedIn account, brushed up my social media accounts, freshened up my resume, and started applying. It took a good 4 months, but I was employed as a web developer on a great team. It doesn't pay great yet, and I know that my BSME helped me get in the door, but I love the work and I do get paid, and bonus: I get to work remotely.
My advice: keep working on it - you might even get a lucrative position curing legacy code with your experience.
|
|
|
|
|
Perhap your current employer has a software/computing department that you could transition to, assuming that you could leverage your knowledge of the business into substantive value for developing solutions?
Time is the differentiation of eternity devised by man to measure the passage of human events.
- Manly P. Hall
Mark
Just another cog in the wheel
|
|
|
|
|
In general, Java and C# are parallel tracks. I would pick the one you enjoy working with (probably C#) and learn the support languages that go with it. Definitely pick up a database language (SQL Server can be downloaded for free) and if you want to do web development, pick up MVC, JavaScript and JQuery.
Plan on projects that you want to do at home to build skills. The easiest way to get ahead is to spend time outside of work doing what you enjoy doing with skills that will help you at work. Coming from soul-crushing jobs, you will want to find a job that is a good fit for your temperament and happiness. Programming can be soul-crushing as well, so this is absolutely vital. It may not be in the skills you have chosen, but you will have to choose which is more important to start. You can always market those home projects for changing jobs to get into the area you want to work in once you have some experience.
|
|
|
|
|
A lot has changed since the 80s. That is when I started college also.
Some things are easier and some are more difficult. And not all programming positions are equal.
Many get by by learning the syntax of HTML5, Javascript, Typescript, CSS, and SASS and then a popular framework like ReactJS or Angular and find happy lives grinding out web applications. Much of this type of developers time gets sunk in learning the latest framework, as the frameworks don't tend to last very long, and then rewriting/updating their code as frameworks and dependencies change in uncontrollable manners. While I tend not to trust developers who are self taught or come from a boot camp, it is primarily because most I have worked with tend to learn their trade skin deep, don't know what they don't know, and don't learn better ways to do something unless they become aware that they way there were doing it will not be supported any longer or is not trendy. That being said, this distrust is primarily because of what self taught & boot camp programmers tend to focus their learning effort on. At some point all of us are self taught since these technologies are constantly evolving. How you teach yourself if what is important. If you want to fully learn this technology stack (for the front end), might I suggest starting with:
Learn web development | MDN[^]
and once you have exhausted what mozilla has to offer on these sets of technologies, you should move onto RFCs to hopefully be one of the self taught people who know the technologies from the bottom up and not only by being able to replicate what they have seen in a tutorial or in a google search. If you go this path, you should make sure you use Typescript.
An alternative path that also costs you nothing, outside of the cost of a book in some cases, that will allow you to see if you still have what it takes to get into more serious computer science topics is to take advantage of OCW at:
Electrical Engineering and Computer Science | MIT OpenCourseWare | Free Online Course Materials[^]
Here you can "take" the same classes that bright young students accepted to MIT take to enter this field. Based on the amount of technology that has changed since 1980, this might be an eye opener. This path is definitely not one that yields a skin deep understanding of a technology that fools one into believing they are competent in a technology where all they are really doing is mimicing tutorials to produce an output and struggling to find another example to follow for the next thing they have not added to their recipe book.
You can start to see a pattern where there are two types of programmers. Chefs and cooks. And most cooks don't realize they are not chefs.
Without a recent degree and/or experience, I would expect to see some solid examples of what you have produced on your own and you would have to pass a competency test in order to work at an organization like mine.
|
|
|
|
|
Lots of good advice given already.
After 12 years at the same company, which went out of business, I worked for another company as a programmer/tester, and there was a downturn, they laid off everyone who was over 50. It was not age discrimination, of course.
Due to the widespread economic downturn, it took me 2.5 years to find a job, even with 18 years of programming experience. Companies preferred young folks right out of college rather than 50-somethings. They even paid the younguns more that older applicants. I developed some websites and did other stuff to pay bills.
I eventually found a job at a place where they value life experience and more than half of the employees were over 50, some in their 70s. I am in a small (2 people) division of a company that does mostly industrial controls, and our programming division does Winforms desktop supervisory systems mostly, aside from some mobile phone dev.
I personally like C#, and taught myself C# after 15 years doing C programming, mostly knowing Assembly, C, C++, and Basic and having an engineering degree with a concentration in control systems.
As for Practical stuff, I would say C#. Easy to learn, and you can do desktop programming, ASP web programming, and also mobile dev using Xamarin. Some people put down Xamarin, but I really like it.
I like the Murach books because I like the approach and style and example practice programs.
I enjoyed Murach's C# 2015. It has been updated by newer versions, but the 2015 is cheaper and it does cover all the basics well, and, although C# has added a lot of functionality and .NET has expanded, the basics to start learning have not changed.
For web dev I enjoyed Murach's ASP.NET 4.6 with C# 2015. Again, an older book, but nicely organized and practical and worthwhile for learning the basics of ASP and web dev. CSS is good to learn, and javascript. Javascript syntax is close enough to C to be able to learn easily.
Develop some fun, practical applications to get the hang of the programming.
After this, if you like C# like I do, get some good books on Xamarin.Forms to start in the cross-platform development if you want to get into mobile dev. I have 7 of them. Most of them show pretty much all of their UI using XAML, but I do almost everything with code since my app UIs are all adaptable per individual user. Even if you do not end up in mobile dev, it is good exposure.
Xamarin.Forms Projects by Karlsson and Hindrikes is pretty good, with its UI based in XAML.
Cross-Platform UI Development with Xamarin.Forms by Johnson and Xamarin Mobile Application Development by Hermes are good for C#-based development. Also, there are tons of online resources.
There is still a good market for Winforms desktop application developers, which is a good start.
Good luck, and all the best to you.
|
|
|
|
|
I made a similar decision when I was about 50.
It occurred to me that it would be impossible to get hired to get into a totally different field even into a junior position with a resume filled with job titles like VP, Plant Manager, Marketing Manager, Engineering Manager, etc.
So I reasoned that I needed a non-threatening way to build a network and contact people.
My solution was to get a Master Degree from Georgia Tech (this was back in the day when you could get in without a CS undergraduate degree.) As part of my plan I took all the core undergrad major course in programming so I would have some version of the latest technology. This gave me unparalleled access to academics and industry people.
I was able, as I approached the end of the degree program, to actually get a job offer from a big company but before I could leave they hired me to teach Computer Science which I did for about 20 years before retiring.
Best professional move I ever made.
Good luck.
|
|
|
|
|
The advice about maybe pursuing COBOL is pretty solid. The places that is used and the people still using it are going to be "better culture fits" and you're going to have less competition.
I don't think you'd have much trouble breaking into C# either though.
IMO, it would be really good to pair it with some knowledge of DevOps stuff like Azure/AWS and a database tech (SQL).
The "big picture" is huge and all interconnected and finding the right spot to jump in can be daunting.
Maybe aim for a cert in Azure, self-learn enough in C# to create some tester projects complex enough to leverage some bells and whistles in Azure DevOps and do some basic connection/querying to SQL.
For COBOL, maybe do a bit of research, but likewise, pairing with some DB tech (maybe DB2?) is going to be ideal.
|
|
|
|
|
As a senior software engineer who retired in 2014 at the ripe old of 64, I have to agree with the comments made by poster Gary Wheeler.
The problem is not how well skilled you may make yourself but your age. Ageism is rampant in the IT industry with the median age for the over whleming majority of all technical professionals now being under 40. In short, professional development today has little use for us seniors anymore even though we have a lot of experience we could provide the younger sets to help them avoid making the major mistakes they will make without such guidance.
One senior analyst (55+ years in age) I read about resigned her somewhat secure position to move into the up and coming younger environments that were already beginning to take hold at the time. She tried her best to help the younger professionals make cognizent decisions regarding design and implementation practices only to be ignored and see the relevant projects all blow up in the younger peoples' faces.
I was pushed out of my last position just for being in my 60s, though I produced the most solid applications in the shop and my users all liked my work and dealing with me.
And to add insult to injury, professional development is not just about the coding. You have to know how to design your applications, link them to work with the relevant databases, understand the various frameworks you could be using in addition to your chosen languages, whether that be a database ORM or a front-end JavaScript based framework for web applications. And of course, for the web, you need knowledge of HTML markup, CSS, and of course the profession's favorite hated language, JavaScript.
The profession today (as it always has been) is also comprised of horrible deadlines, bad technical management, and growing disillusionment by even the younger professionals as a career choice. Women, who tend to be smarter than us men, saw the writing on the walls and got out years ago and have never returned
to the 1980s high of 35% of the workforce.
I know this may put a damper on your aspirations but I went through three separate technology eras in my career and I can say that the zenith of our profession was reached in the mid-1990s to the early 2000s. From 2010 on, it has been in a downhill spiral with no end in sight.
Given all this, if you still want to pursue this avenue, I would recommend that you attempt to find a company that is willing to hire people in your age bracket, which is just as interested in your working experience as it is in your new skills. Look for companies that are still open to hiring older professionals as some larger companies are who are trying to "diversify" their workforce. The new startup environments will not be your cup of tea...
Steve Naidamast
Sr. Software Engineer
Black Falcon Software, Inc.
blackfalconsoftware@outlook.com
|
|
|
|
|
I'm in my mid 40's and thought my career was over when I hit 40, so I had to change. At the time I was working for a small industrial refrigeration company building the control software for their clients and had been for 20 years, but I was burned out being the only developer and doing way too much traveling.
In one respect, I had huge job security, my software was the flagship product that kept all the hardware working correctly. In another respect my skills were getting very stale, and looking around not many jobs were around for that kind of skill set.
I had a choice to ride it out to retirement, feeling dead inside, or look for new opportunities, one landed in my lap that liked what my skills were, but also was willing to invest in me learning a bunch of newer technologies that were not present at the previous job. I picked up a bunch of new skills, but the job was still too similar the last one with too much travel, that I finally found my current work as a web/app developer which is a far cry from the original one.
At least in my current job (local collage), there is options for moving up eventually to management, and getting retrained. I'm less worried about my future here than the private industry, but It's going to be constant change for me.
Steve Naidamast wrote: and of course the profession's favorite hated language, JavaScript.
the funny part when I was first introduced to JS I hated it, it broke all the rules that C & C# I had known and loved most of my career. Being the stubborn B@$terd that I am, I knew people were doing amazing things with it, so I did a deep dive to understand how the parser engine works on the script and I started to really love it. It's like the opposite of C in ways, even though the runtime is built in C. I think once I gave up on the notion of modeling, with strict types everything just clicked in place. It made me re-think much of the way I design other code.
Many of the younger folk just getting started, it must seem daunting about the breadth of what to learn. I've met quite a few that couldn't function outside of frameworks like React or had no idea what bitmasking was. They simply don't have the fundamentals that make you think of how their code effects the machine. One developer had 15+ layers of loosely coupled functions of implementations of interfaces at runtime to get to the actual code that was needed; making it not only hard to debug, but also use way more system resources than needed, almost every class also had a interface to base off of it.
As I get older and continue to learn more, I see more of the mistakes I took early in my career and code. Eventually I'm going to transition to teaching software development when ever I get around to working on my teaching certificate for a soft retirement. I think older developers should consider this path; We have vast experience. We know the pitfalls, and most importantly the fundamentals that all coders regardless of their path should know before starting their career.
|
|
|
|
|
I'm over 45 and two years ago, went from embedded/industrial control (20 years) to web development with only a couple of web projects under my wings, it was like learning everything over again.
I would choose the language(s) that you might be most interested in.
C# = desktop, services & web (easy to get going, lots of applications)
Java = mobile app development (there are others, but never got past this area, not the funniest language to me)
C++/C = OS services, gaming, complex utilities, embedded (still love C with embedded)
JavaScript = mainly web. (a lot of potential job openings)
As someone who did the jump, I was able to use my existing C# knowledge and build basic ASP.NET apps to get up and running. For the JS side on my pages, concentrate on the fundamentals of JS and pick up some good books like: You don't know JS.
Don't fall down the rabbit hole of jumping to React or some of the other frameworks first; they do get you up and running, but don't teach you how it works in the background.
With all web dev you will also need to know a lot about everything to get things working like the ends and outs of CSS (checkout Kevin Powell on Youtube for some great tutorials). The HTML side is pretty easy (but a bit frustrating to get layouts to work correctly in the beginning.)
After you get comfortable in the basics then try out Node or other frontend and backend frameworks. they do make the resume look great, but a pit fall if you don't know how HTML/CSS/JS all work together. For projects at my work place it can be anything from C# desktop apps/services to basic HTML, to simple ASP.NET, to ASP.NET + React all depending on how complex the final product needs to be.
For me: to really get to understand JS I spent a weekend and first made a Tetris clone working on html canvas. and that was a good start. I figured out controls, sound, layout, drawing, classes and a bunch of other things along the way. about a month later built a "Crule" solitaire clone, to dive deeper into it. I am still no expert on JS, it is such a huge ecosystem.
So look around, and find out what you are passionate about, or at least super interested and start some Youtube tutorials to get going. Try out the different languages on a couple projects and see what clicks and what doesn't. For me Java was so abysmal, I swore I would not touch it again after the last job.
hope this rambling helped.
|
|
|
|
|
I want to tell everyone about the benefits of eating dried grapes – it's all about raisin awareness.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Yeah, I heard it through the grapevine.
|
|
|
|
|
Ooo I bet you're wonderin' how I knew
The less you need, the more you have.
Even a blind squirrel gets a nut...occasionally.
JaxCoder.com
|
|
|
|
|
I'm sure Gladys thinks you're a pip.
Software Zen: delete this;
|
|
|
|
|
Reminds me of a time I nearly went loco pruning a plum tree.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
modified 9-Aug-21 11:15am.
|
|
|
|
|
thought of the day - is that what you're currantly thinking?
|
|
|
|
|