Slashdot Mirror


Ask Slashdot: How Does an IT Generalist Get Back Into Programming?

CanadianSchism writes "I've been in the public sector for the past 6 years. I started off doing my work study in web design and a bit of support, eventually going through the interview process to fill in a data processing technician post, and getting the job. The first four years of my work life were spent in various schools, fixing computers, implementing new hardware, rolling out updates/ghosting labs, troubleshooting basic network and printer problems, etc. I was eventually asked to work on the administrative information systems with an analyst, which I've been doing for the past 2 years. That's consisted of program support, installing updates to the pay/financial/purchasing/tax/energy systems, taking backups on SQL servers, etc. I've never had the opportunity to take time for myself, and jump back into my first love: programming. I've picked up Powershell books (have two here at the office), but haven't gotten anything down yet, as there are always other projects that come up and whittle my attention to learning a language down to zilch. This new year will see a change in that, however. I'll be setting aside an hour every day to devote to learning a new language, in the eventual hope that I can leave this company (take a sabbatical) and hop into the private sector for a few years. My question to you all is, what language should I start with, to learn and get back into the principles of programming, that will help me build a personal portfolio, but will also lend to learning other languages? At this point, I'm not sure if I'd like to make/maintain custom applications, or if back-end web programming would be more interesting, or any of the other niches out there."

9 of 224 comments (clear)

  1. Python by HaZardman27 · · Score: 4, Insightful

    It's easy, it's fun, and it's versatile. It would be useful to all of the field you mentioned and would also be useful for scripting if you do end up going back to IT.

    --
    Apparently wizard is not a legitimate career path, so I chose programmer instead.
  2. For me, I do a hell of a lot of FOSS code by ios+and+web+coder · · Score: 5, Interesting

    I do it for free; usually for NPOs that can't afford programmers. Helps me to learn.

    I don't particularly care whether or not it ever becomes "famous" (it won't because it addresses a very small, select audience). I just care whether or not it is the best quality I can do.

    The nice thing, is that there is minimal pressure, which is good, as my "day job" gets first dibs on my time.

    I don't watch TV. I don't hunt. I don't tweak cars, and I don't like to spend much time tending a server.

    I just like to code. I also make sure that I don't write stuff that competes with my "day job." I like my company, and they could easily make my life miserable if I did. I also don't spend much of my "day job's" time on my personal stuff. I don't mind spending a bit of it, though, as they DEFINITELY benefit from my extracurricular work.

    That works for me.

    --

    "For every complex problem there is an answer that is clear, simple, and wrong."

    -H. L. Mencken

  3. Python by cinghiale · · Score: 5, Interesting

    http://xkcd.com/353/ Results may vary but yes it is that simple and powerful.

  4. Stay in the IT Discipline....go DevOps by Midnight_Falcon · · Score: 5, Interesting
    My opinion here is you've developed skills in IT, but now you're looking to do a bit of a "paradigm shift" and go into Development. However, there's big money these days for Sysadmins who can code well, e.g. python, powershell, ruby, and use it it some type of framework like Puppet or CFEngine etc.

    You can become a rockstar DevOps Sysadmin if you get this down

    I'd suggest Ruby first, then Python...but of course, you'll want to make sure your Linux/unix sysadmin knowledge is top notch too. I'm self taught so I'm not very good at telling people how to learn it besides "eh figure it out", but I'm sure you are industrious enough :)

    In conclusion: Stick with IT. Also add Programming. Collect $$ for being a DevOps specialist.

  5. Programmers code every day by NewWorldDan · · Score: 5, Insightful

    It's been my experiance that good programmers always have a project in the works. It's almost a disease. I can't go 2 weeks without writing something. So if you've gone 6 years without writing anything, I've got to wonder if it's really your thing.

    That said, the next question is where to start. Pick something with high demand where it's relatively easy to get your foot in the door. The biggest problem you'll encounter is that everyone wants 5 years of experiance. If you can work programming into your current job, great. That's how I switch from systems administration to programming. I'd recommend learning C# and MVC. The tools are excellent and there's huge demand for it right now. The HTML and Javascript side of it will translate over to anything else you want to do.

    1. Re:Programmers code every day by LodCrappo · · Score: 5, Insightful

      It seems like you are missing the OP's point. Good programmers code all the time *regardless* of whether the nature of their job lends time to it. They *do* jump into it in their off-time.

      The fact that you haven't is a strong indicator that programming is not for you.

      --
      -Lod
    2. Re:Programmers code every day by PRMan · · Score: 4, Insightful

      What he's saying is that most great programmers would be programmers whether there was a paying job or not. If they were factory workers, they would be writing code on nights and weekends for fun.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
  6. Re:simple by 19thNervousBreakdown · · Score: 4, Informative

    Yep. Ain't no other way. Write stuff.

    Even better, write stuff that's hard. Read stuff. Read really complicated stuff, and try to make it do other stuff. Nothing will teach you good programming practices like knowing why you follow them, and nothing will tell you why like seeing the hell that comes of not following them, which any large project is almost guaranteed to contain plenty of examples of. From misnamed or misused variable/functions, to multiple (and therefore slowly diverging) implementations of the same logic, to spending weeks reinventing something already solved in your programming language's standard library because they didn't like the order of arguments on a function, to bringing in a massive overcomplicated framework to solve a simple problem due to a too-strong avoidance of NIH (not that you shouldn't beware of NIH, you just shouldn't let it lead you into trying to pound a space shuttle into a square hole), you'll see it all.

    Fix some bugs for a large FOSS project. Pick things that are just slightly over your head, and then pretend someone's breathing down your neck to get it done yesterday. Pick a project where you don't just get to commit changes, find something where your code is reviewed before it's accepted. You'll find a lot of honesty in people that aren't getting paid and don't give a shit about alienating you, and if you can handle a bruised ego you'll learn a lot.

    One thing I wouldn't suggest doing is writing code for other people on your own, not right away. It's not that you shouldn't do that eventually, just don't do it when you care more about accomplishing your goal than you do about learning until you've got some good habits firmly established. Otherwise, your bad habits will just become reinforced, since they're usually easier especially when you're only looking at your own code, and to to be honest, you probably don't know the difference between a good habit and a bad habit until you've worked on a large project with a lot of people.

    The best thing about working on FOSS projects is, you'll actually be able to demonstrate work to future employers. That goes a long way in an interview or on a resume.

    --
    <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
  7. Seven Languages in Seven Weeks by kwerle · · Score: 4, Insightful

    By and large, languages don't matter. It's the frameworks that do. Nobody* is looking for a ruby programmer - they're looking for a ruby on rails programmer. Nobody is looking for an Objective-C programmer - they're looking for iOS (and/or MacApps) programmers.

    * yes, there probably are 3 ruby jobs, but you don't qualify and they are not near you/flexible enough/whatever.

    I don't happen to like Java. I found python annoying when I last tried it (which was long ago). I think I'd like it more, now. php was meh. I really enjoy ruby and I liked Obj-C 15 years ago. Find out what you like to work with.

    Check out the Seven Languages book. It's fun to take a few languages for a spin. If it's not fun for you, maybe you should stick with IT :-)

    But you're really asking about finding a job.

    By and large, jobs don't matter. Yes, you need/want to make enough to live comfortably, but it's amazing what you can be comfortable with. What really matters is what you work on, who you work with, and what you work with. Find a job in a field that interests you, working for/with folks that you get along with. Once you're there, fix the kinds of problems you enjoy fixing. Do some of the ones that need fixing, too. You do both software and IT - it should not be hard to find a great place to work and make it work for you.