What are the first steps to getting back into programming after many years of tech support?
views:
693answers:
14Code Code Code. First pick a system and language. Then write some programs. Anything to get your legs back. After you start to get some confidence pick a reasonably small understandable open source project and figure it out. Then move on to contributing.
It really comes down to coding as much as you can with some good people looking at your work.
Above all, have fun!
Start writing code.
Just find a pet project you've always wanted to work on, and well, start working on it. Maybe learn a new language, or a new way of doing things. But start writing - that's the most important thing.
I know this has already been said, but it's the old saying "Writers write."
It depends on if you will be programming with technology that you once used in the past or if you will be trying to catch up on new technology. If you will be working with languages you used in the past I would say it is kind of like riding a bike. You never really forget the basics. You just have to scrape off the rust... If you plan to get up to date on .NET or something like that I recommend taking a starter course to get you going or maybe interning at a job where you will learn new technology learn hands on.
Make sure what you start is something you're passionate about, so that you'll be able to stick with it through The Dip. You may face some challenges and a learning curve depending on how long you've been "out of the game" and if you're trying to learn a new language at the same time.
Working on a project that you passionately want to see come to completion, or a goal that you would be very excited to achieve, above and beyond just programming again, will help you stick to it until the end.
It depends on why you're getting back into programming. I'd recommend read blogs. Read blogs and engage the community. Hopefully you'll start to see yourself as programmer again and the desire to code will return.
Others have said "Code Code Code", which of course is a brilliant and fundamental thing to do. I'd also advocate "Read Read Read". Read code samples and sample application. Familiarise yourself with the current thinkings behind softwre design and the constructs used to create. Writer write, but they also read a lot. You need to get your inspiration from somewhere.
Find something you want to accomplish (you're probably beyond getting much of a thrill out of "Hello, World!"), then, as others have said, code, code, code. But be sure to build on all the wonderful packages out there -- unlike the Good Old Days, there are libraries available to handle a lot of the grunt work, and you don't get extra credit for reinventing the wheel.
As far as languages go, pick whatever appeals to you, at least initially. Python, Ruby, and Perl all have the great advantage of being relatively terse (compared, say, to Java or C), and so you can concentrate more on what you're doing and less on how you have to say it.
I'm of two minds whether you should use an IDE or a traditional editor -- I've never really made the jump to the IDE world, and I know I'm missing out on a lot of functions...but on the other hand, IDEs have a learning curve all their own, and you may only want to climb one learning curve at a time. If you're not familiar with a decent text editor, then by all means jump right on to an IDE.
And start using a source control system from Day One. Not having one leads to bad habits (like commenting out code you know is bad, just to avoid "losing" it).
Enjoy!
Scratch an itch. That is, find a problem that you think you can solve, and let it guide your path. That could mean you start with something from the open source community and contribute back. Or, you could write something that works only for you. But I would take a balanced approach between Code Lots, and Read Lots. You will need to learn as you go these days since things change so fast, but there are fundamentals that make this field similar to riding a bike. I mean, if you remember simple things like how to use hashtables, OOP and all that, you should be back at in no time.
As everyone else has said, start coding! I think one of the most important aspects, though, is to find something you actually want to code. Sometimes starting off slow and easy is the best way - start coding with a language you previously used, or learn a new one. If you can't think of any personal projects you would want to do, and getting into an open source project seems too daunting, trying online programming challenges might help you get going. Project Euler or UVa Online Judge might help you get started with small programming challenges. If you like puzzles they can also help you to get interested in programming again.
Instead of coding something out of the blue, find an open source project you find interesting and join it. This way you'll also get used again to team work and get influenced by other developers. And if it's a known OSS it will also look good in your CV.
Good to be coming back! Gives you a chance to start anew, jump over a generation of tools, APIs etc. you probably wouldn't really miss. Don't continue the old stuff you already know, but get to know something that's only lurking under other people's radar. Like Lua.
If it's really been a long time, do some programming exercises like you did when you first learnt. A quick Google search will find some in your chosen language. If they're too easy, keep looking until you find some that really challenge you. If you really want to test your self try Project Euler. If you can solve the first four or five you'll be back in the game, at least with the basics which is where it really counts.
I have twice been away from development over the past 20 years, so I know how you feel. What I found best both times was to pull out an old project (personal or otherwise) that I had not finished, and continue it. Either backtrack and figure out what you did and complete the project, or update some skills to a new platform/technology/language and rewrite the project. That way you still have familiarity and you can ease right back into it.