Ask Slashdot: Best Options For Ongoing Education?
An anonymous reader writes "Lately, with the volatility of the economy, I have been thinking of expanding my education to reach into other areas related to my career. I have a computer science degree from Purdue and have been employed as a firmware engineer for 10+ years writing C and C++. I like what I do, but to me it seems that most job opportunities are available for people with skills in higher level languages such as ASP, .NET, C#, PHP, Scripting, Web applications and so on. Is it worth going back to school to get this training? I was thinking that a computer information technology degree would fit the bill, but I am concerned that going back to college would require a lot of time wasted doing electives and taking courses that don't get to the 'meat' of the learning. What would you do?"
Just learn them. School will only teach you one specific set of solutions to a problem rather then teaching you to problem solve. If you want to learn another language, just do it. Sit down, think up a simple application and write it.
"Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
Just start learning the new languages. You'll be surprised at how easy they are to pick up when you already have programming background..
IMO: You'd waste time & money going back to school.
If that's what you want to do, sure. But these PHP/C#/Web folks are a dime a dozen. You already have experience in something specialized. There may not be many jobs per se, but there aren't many people to fill those. Move into driver development or embedded system programming. You will be able to transfer current skills and you won't face saturation like in the higher level languages.
"When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
This is probably one of the few professional areas where going to a formal educational institution is a waste of time and money. There is SO much by way of online resources that you can use to self-teach, communities to ask questions (like StackOverflow), and practical projects that you can do to learn programming. If your aim is to learn another language, consider yourself extremely fortunate. Decide which language you're interested in, get a good book, start an SO account and get started.
I am concerned that going back to college would require a lot of time wasted doing electives and taking courses that don't get to the 'meat' of the learning
If you really want to get into teh web development side, I'd check out your local community colleges. All your gen ed stuff (english, math courses, history, etc) from your prior degree(s) should still count, so you'd just need to do the core classes for the AS degree you are interested in. You should be able to finish up in 3 or 4 semesters, if that.
Don't blame me, I voted for Kodos
Background: I am an adjunct instructor and an IT professional. As such, this is a common discussion topic.
The education industry, meaning colleges and universities, need a way to "add on" additional skill emphasis to degrees without requiring whole new degrees. I think, instead of detracting from current products (associates, bachelors, masters degrees), this will add revenue abilities from lifetime learning requirements that tech people have.
For Example: BSCS, Purdue University, 1990
CS Advanced Programming Topics, Coursera, 2013.
This would allow people to add the 2-3 courses that they need to refresh their skills, get students into the halls paying tuition (out of pocket, or company money), allow current students to brush up and work with more experienced folks IN CLASS, and show what HR is looking for, current accredited skills improvement.
But we seem stuck in the past. So we have to suffer through $1,000 a day "boot camps" that still require you to do a lot of on-your-own learning. We NEED something better. Colleges, be they 4 year or community, need to have programs that carry through the whole career ladder for skills improvement. I think that will help all of us overcome the "no training dollars this year" dilemma we constantly find.
Yes, because there's apparently much more demand for them, so more people develop those skills. I'm currently doing .NET/web stuff specifically because I couldn't find work writing C. (And I'm entry-level, so it's not as if experience was a factor -- in fact, I wrote C & Fortran in my research assistant job while at school).
"[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz
... or if you don't want to just write a toy program that you're going to throw away, then find some open source project that you can contribute to.
Or check Code For America (or whatever the equivalent is in your country) to help out on local projects ... then you're also networking in your area, if you're looking for a new job.
Go to school for learning the fundamentals of programming ('this is a variable', 'this is a function'), or maybe to get a deeper understanding of different styles of programming (procedural / functional / OO / event-driven, etc.) ... but for learning languages you're often better off working on a project you care about and maybe finding a support community (local users group for that language, or the support community behind that project) or a mentor (eg, someone else from that project)
If you're one of those people who learn better from structured education ... then maybe look into a MOOC or community college. This is not one of those situations where shelling out university prices is appropriate.
Build it, and they will come^Hplain.
I feel your pain. I actually went into, and then out of OO programming. The issue is that while it's a perfect technique for some very specific directions, it's horrible for solving real-world business problems.
You, specifically you, need to look at OO programming much differently. Then you'll find it quite easy to use. It's not actually any different than procedural programming. It's simply a collection of encapsulated procedural mini-programs. That's it. It's exactly the same code, it's just called differently. It's the same function/subroutine, it's just launched/triggered/executed with a different syntax.
The reason it's horrid for most business problems is simply because business problems are solved by figuring out how to sequence individual and often disparate tasks. Whereas OO is designed to solve problems where the same task needs to be solved countless times and the sequence is almost irrelevant.
If you've always tried to use OO for business tasks, then your struggle wasn't with the hammer, it was with how to use the hammer to turn a screw. But if I were to give you a nail, you'd suddenly understand how to use the hammer quite instinctively.
If you still/ever need someone to walk you through it, let me know. I'm happy to help.
Your best option here is PHP. There is tons of PHP work out there to be had and it is cross-platform so you won't be locked into MS.
PHP has had a bit of a renaissance lately and being based on C you'll be right at home with lots of job opportunities.
Just start taking PHP contracts. No need to go re-educate yourself to do something simpler than what you were doing.
The education industry, meaning colleges and universities, need a way to "add on" additional skill emphasis to degrees without requiring whole new degrees.
They are called graduate certificates. You take a couple of graduate level courses, and you get a graduate certificate. Often, you can get a certificate while you are on the path towards a masters.
Given how difficult it is to replace firmware, and how crappy a lot of it is, I would have thought that the world needs more (and not fewer) firmware developers.
Ezekiel 23:20
In my experience, the best programmers all have one (among others) critical skill: They have the ability to pick up new languages, APIs, technologies, etc., quickly and on their own. The fact that, after 10+ years as a programmer, you see ASP, .NET, C#, etc. as so formidable that you feel (apparently) that you might learn them more efficiently by sitting in a classroom and being spoon-fed would give me pause if I were considering hiring you for any developer position.
yeah, if they can be modelled that way. but most businesses, especially small businesses, have zero consistency because what you're modeling is the will of the will of the owner. It shifts too much to have any structure. So there are no business entities to class, because everything's a class of 1.
That's when OO falls apart, crashes, and burns. When no class gets used more than once, there's no point in having the class. When no method is used on more than one object, there's no reason to tie it to an object. And when no object has more than one instance, there's no point in calling it an object.
When, at execution-time, no line of code is executed more than once, there's no benefit to OO.
And then you're left with only the disadvantages of OO -- code-structure, hard definitions, layers of abstraction, no injection points -- which makes everything an exercise in making it take as long as possible, to be as robust and future proof as possible, even though it'll never be used again and it has no future worth considering.