6 ms·
As someone with a Science degree, but working as a software developer full time I've always wondered if I'm missing something by not having a CS degree. Certai
by speg 14y ago
As someone with a Science degree, but working as a software developer full time I've always wondered if I'm missing something by not having a CS degree. Certainly not enough to go back and get an actual degree, but would something like this would be worth my time?
- dccoolgai 14y agoAsk 10 people this, get 10 different answers based on their own decisions and experience. Since you asked, mine is this; Yes. Again - this is all based on my own empirical experience - but I've noticed that devs who don't have CS degrees are as good (or better at, sometimes) solving problems themselves...but they tend to fall on their faces (sometimes with disastrous professional consequences) when it comes to recognizing "archetypes/patterns" of problems that have already been solved or have proven approaches. When I was getting my CS degree I rolled my eyes in boredom at all the algorithm and data structure analysis courses, but years later I think that was probably the most valuable part. Glancing at this "curriculum" from Saylor it looks like they cover that stuff - so if you have extra time, go at it - I probably will myself just to brush up.
- bonesinger 14y agoCoursera just started their algorithms course, Its well organized and practical. They use Java.
- volci 14y agoThere's also Udacity
- ninh 14y ago^ This. It depends on the kind of software you're interested in writing. Algorithms, datastructures & complexity analysis is imo arguably among the most valuable of the bunch due to its broad applicability. This is for instance particularly useful when writing software that needs to scale and perform well, e.g. server/system software. In short, I feel there is merit to each CS course but want to underline that it's information you can self educate yourself on should you be so inclined to do so. Attending a CS major however helps with keeping one motivated. That brings me to imo the most important point of attending a traditional CS major: meeting fellow CS'ers to do a startup with :) I think that has been the most valuable CS experience for me. That's something I kinda miss with this "new era" of online courses.
- timo614 14y agoDefinitely agree. I had a CIS degree (not exactly computer science but some overlap) and I'd say some of the most helpful material I read to get myself on par with day-to-day developers was related to algorithms, data structures, and design patterns (the GOF book is very course-bookish but there are friendlier head start books if you're just getting into it). To be honest though I'd say the best learning material I experienced was just surrounding myself with people who know more than myself. Ask for code reviews (don't just get forced to do them) from people you know to be excellent developers (not the easiest thing to spot when you're green though). Also never stop learning whether it's through a degree or online through one of these sort of courses.
- lmm 14y agoA working knowledge of algorithms and data structures will benefit you, but you might well be better off reading a book than following this. For the rest I really wouldn't bother; Compilers is an interesting way to learn some things, but not terribly applicable, everything else is stuff you'll pick up yourself or don't really need.
- ctdonath 14y agoA degree ensures you have learned all the basics which experts in the field believe you need for a solid foundation. It answers and formalizes the "I want to do/be X, what must I learn?" question. Yes, doing something like this would be very much worth your while; I've got two (accredited) degrees in the subject, and still might just run thru this as a refresher. Time and again over two decades, I've seen self-taught software developers do well, yet stumble into educational gaps/traps any degreed developer would have learned to avoid. All too often they can't perceive what's missing because they're not aware of the advanced material which retroactively fills those gaps. A formal education includes a lot of "do it this way, you'll understand later" which was learned via tremendous cost in hours, effort, and money in the industry, stuff which the self-taught by definition are unaware of and can only (if ever) learn the hard way. It also includes a lot of "there are other ways to do this" that one won't pursue unless compelled, and thus expands the toolbox. It's also embarrassing for the self-taught to go years without learning something which is standard first/second-year material (like having a self-appointed software architect get all excited about discovering state machines, and proceed to implement them in an inappropriate manner). Do it. Fill in the gaps you're unaware of. Listen to people who say "trust me, you really do need to do it this way, even if you won't understand why for a while." Yes, you can learn it all on your own, but it will likely take longer. Life is finite.
- marknutter 14y agoAs if a self-taught person can't learn what not to do from more advanced peers and get the same benefit?