To cut right to the chase: I want to pursue a career as a software developer. Spare me the lecture about how it's a competitive industry, hard to get started, just knowing how to write code is far from enough, etc. I know all of this. I understand that it will be hard work and even if I take all the right steps, there's no guarantee of landing a cushy developer job.

That said... What would y'all recommend someone interested in getting started do? Should I self-learn some current languages and do some independent work, maybe just some simple freeware/shareware or a personal website if I go the web dev route? Should I pursue some sort of formal degree or certification?

I have a BA in an unrelated field (Political Science). My only work history in the industry was working for my school's IT dept. for most of my undergrad years. I did PHP/MySQL development and random low-level sys admin duties (mostly dealing with permissions issues and running our log analyzer software manually via SSH when a one-time report on some subsection of logs was needed, or installing software packages via SSH, that sort of thing). I've coded in various languages as a hobby since I learned BASIC when I was 8. My skills are pretty obsolete, though - we mostly used PHP4 and JS and did hackish solutions with our tiny underfunded staff just to keep things working; with the mountains of bad, undocumented legacy code and nowhere near enough time or developers to rewrite old terribly designed projects to modern best practices. Basically, I know how to code, but I'll need to learn the specific skills and languages for whatever job I pursue.

Right now I'm considering 3 options language-wise: update my PHP knowledge to 5 and learn jQuery to become a web dev; learn Objective-C and the various related Apple APIs to do Cocoa/iPhone development; or learn C++/.NET and beecome a .NET developer.

I know web design better than compiled coding, but from what I understand, web devs are a dime a dozen and it helps a lot if you're also good at design work (Photoshop, etc.), which I have no talent for. On the plus side, I have a much clearer idea how to get started: I can just start a website, first to learn some modern languages and APIs, and later try to monetize it or at least polish it up to be a portfolio to find a full time gig.

Working for Apple would be awesome, but Objective-C would limit my opportunities outside working for them directly or some iPhone/iPad development studio. On the upside, before finding a permanent position, I could try to write my own apps and get 'em on the App Store for some potential profit as I hone my skills and develop a portfolio.

.NET and C++ seem to be the most obvious route for a less specialized compiled language and API to learn. On the minus side, I know very little about Windows APIs and generally find the idea of writing Windows programs less exciting than web development or iPhone/OSX development.

I know a four year degree in CS helps a ton when trying to land a developer position, but going further into debt for a second undergrad degree isn't much of an option. I could see trying to get some shorter degree or accreditation and I know it'll take time to go from "I want to be a developer and I've coded a bunch before" to actually being hired by anyone for a full time dev job, but I'm more interested in what I can *start* doing now, either on my own or in a few months through some class/accreditation program. How would you guys recommend I spend my time working toward this goal? And any suggestions for a language/development environment to start out in given my situation and the market today?

Get a degree.

In the 60's and 70's it was easier to get a job without one. But today, why would you hire some self-taught person rather than someone that has a formal education?
Would you buy a house built by the guy's brother-in-law executive that likes woodworking or one built by the guys with training and knowledge?

Yes it costs money, but the benefits in the career are abundant.

get a degree indeed, and also don't be afraid of taking on jobs that don't fit your "ideal" job description.

There are scores of kids with a modicum of programming knowledge in Java or Python willing to work for peanuts as long as it's using their favourite "technology".
To stand out from the crowd you have to be willing and able to take on other assignments. Someone has a job doing Fortran? Take it, buy a book and get to it.
A Cobol project needs a helping hand? Don't turn it down.

Cobol -- well, maybe not... That's just a short step to -- shudder -- RPGII! :sweat:


opinion of a diehard software engineer... :icon_mrgreen:

get a degree indeed, and also don't be afraid of taking on jobs that don't fit your "ideal" job description.

Agreed, but also the OP should learn the skills necessary to qualify for a large quantity of jobs, to maximize his chances of getting one. And that means learning java or other object oriented languages.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.