Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Ask Slashdot: Stepping Sideways Into Programming?

timothy posted more than 3 years ago | from the implantable-nodules-from-thinkgeek dept.

Education 152

thundertron writes "I'm a 28-year-old, non-technical, UX-focused Product Manager at a startup. Overall I'm very happy with my work, but I'm endlessly frustrated that I'm not committing code. I love the few occasions where I commit some front-end code or put together a fairly sophisticated query, but if the onus were on me to put together an entire site my hands would be tied. I've thought about going back to school (or even taking time off from my career to take courses) in CS to immerse myself in programming. The flip side is that I know I won't want to do that forever — I won't want to be employed primarily as an engineer because I like too many other aspects of the business. My best option seems to be to dive into Ruby on Rails and just pick up what I can in my spare time. Perhaps others in the Slashdot community have some suggestions/recommendations?"

cancel ×

152 comments

Sorry! There are no comments related to the filter you selected.

Try Not To Code (5, Insightful)

WrongSizeGlass (838941) | more than 3 years ago | (#36576814)

One of the most important aspects of a PM's job is objectivity. Once you're part of the team contributing code you'll face the difficulties of having to kill some of your own ideas or contributions. It's never easy to be on both sides of the line when your dealing with more than a few people on a project.

Re:Try Not To Code (5, Interesting)

nine-times (778537) | more than 3 years ago | (#36576938)

I agree with this-- you need enough knowledge to judge the work of the people you're managing, but often enough, it's detrimental for managers to "pitch in".

I'm sure there are people here who would disagree. If you're the person being managed, sometimes it's nice to see your manager pitch in and help. They're suddenly doing "real work". And as a manager, sometimes it's helpful to experience first-hand the difficulties that your subordinates are facing. It gives you perspective, and it gives you a better grasp on how to help your subordinates.

On the other hand, one of the primary jobs of a manager is to be detached from some of the nitty-gritty details and to be keeping an eye on the big picture. It might be that while everyone else is obsessed with making their code perfect and efficient, your time is better spent looking at the product as a cohesive whole and figuring out whether you're actually achieving your goals. It's a challenging job in its own right, and it's a job too often neglected.

Re:Try Not To Code (0)

Anonymous Coward | more than 3 years ago | (#36577194)

Also consider this person might not want to manage people at all. Maybe they chose the wrong field but the right industry.

On the management front I've worked with both technical and non-technical managers and I must say I like the former the best. Going to a coder-manager and telling them exactly what is fucked up about a piece of code I'm working with is infinitely less complicated than dealing with a non-technical person. When a coder hears your story they try to solve it, or at least understand it and they quickly appreciate the scope and seriousness.

The non-technical person just blames you for not being awesome enough to summon wizards at the last minute of the project to eradicate their many layers of shitty legacy code you discovered and had to deal with to get your contract done.

"Designers" are taking over. That's a problem. (1)

Anonymous Coward | more than 3 years ago | (#36577798)

The main problem these days is that so-called "designers" are calling many of the shots, rather than actual software developers.

This is a pretty radical departure from the past few decades, where we've seen it mostly be the opposite situation. Software developers would make the decisions, but would occasionally enlist the help of graphics and UI designers to tweak the UI's appearance or for suggestions about improving the UI's usability.

These days, however, we're seeing the "designers" deciding how UIs, and even the software as a whole, are to behave, from beginning to end. The software developer is there to merely implement whatever the "designer" wants, without any ability or power to make decisions themselves.

The problem arises because software developers and "designers" have very different focuses. Software developers want to create applications that work well, and are effective to use, even if they might not be very pretty. "Designers" tend to only care about appearances, even if the application isn't very usable. And they only keep themselves relevant by changing, often needlessly, the appearance of the application or web site on a frequent basis.

This is exactly what we've seen from each organization and group that you mentioned. Apple, for example, was originally founded by software and hardware developers. Their operating system's UI didn't look horrible, but it was usable and that's why Apple systems became popular initially. After their rough patch, and the acquisition of NeXT's technology and talent, we saw them focused on providing high-end, high-quality software and hardware where usability was key. Then the iPod/iPhone/iPad situation arose, and the emphasis shifted more towards "design". Now more emphasis seems to be on making the software look "trendy" and "hip", rather than working well.

The same goes for Mozilla. We've seen nothing but one pathetic Firefox UI redesign after another from them lately. These unnecessary redesigns are only disruptive, and haven't been beneficial. Now the developers have been distracted for a long time making these changes, rather than fixing the performance problems or memory leaks that plague Firefox. Users suffer not only from the bad UI changes, but they also suffer from the lack of real progress when it comes to fixing these serious problems.

It's time for software developers to make the decisions, rather than "designers". The priorities and concerns of the software developers are much better aligned with those of the actual users. The applications may not look as pretty, but that's easily ignored if they work well.

Re:"Designers" are taking over. That's a problem. (2, Insightful)

ranton (36917) | more than 3 years ago | (#36577882)

When I read your post, it sounded like you were describing some of the best trends in software development (not problems). Having designers take control of the user experience away from the developers is a good thing in my opinion. Unless they suck at their job, of course, but the same can be said of developers.

These days, however, we're seeing the "designers" deciding how UIs, and even the software as a whole, are to behave, from beginning to end. The software developer is there to merely implement whatever the "designer" wants, without any ability or power to make decisions themselves.

Hallelujah. Thank god designers and business analysts are keeping developers from creating horrible interfaces and forcing unusable workflows on end users. I don't think you see too many developers complaining that they aren't allowed to fumble around with user interface design anymore.

This is exactly what we've seen from each organization and group that you mentioned. Apple, for example ...

Are you honestly using the best example of designers having a bigger impact on a successful company than developers to illustrate designers run amok? Does anyone dispute that it's the aesthetic excellence of Apple products that has made it into a successful company, as opposed to technical excellence?

It's time for software developers to make the decisions, rather than "designers". The priorities and concerns of the software developers are much better aligned with those of the actual users. The applications may not look as pretty, but that's easily ignored if they work well.

I could not disagree more. As the software development field continues to mature, the last thing we should do is go back to the dark ages when software developers were primarily responsible with the user experience. Keep us doing what we are good at: implementing the great ideas of great designers and UX experts.

Re:"Designers" are taking over. That's a problem. (1)

Jane Q. Public (1010737) | more than 3 years ago | (#36578208)

"Does anyone dispute that it's the aesthetic excellence of Apple products that has made it into a successful company, as opposed to technical excellence?"

First, even "technical" excellence is not a subjective thing. One person's excellence is another person's mediocrity.

There is a LOT of "engineering elegance" that goes into most Apple products. That is to say, they go to a lot of effort in designing the internals (whether that is hardware or software), so that the externals "just work", and are simple to use. A couple of examples:

While others were struggling with horribly clunky interfaces on their MP3 players, Apple made the iPod, with essentially a single control. And far from it being awkward to use the device via that one control, it's actually simpler than most others. (That has now been copied to some degree, but of course Apple still has patents.) I don't know if you've ever seen one torn apart, but there's a great deal of engineering and internal complexity involved in making that one "simple" control work.

A couple of years ago, they came out with the new "unibody" case construction for their MacBoooks. The main body is now machined out of a single billet of aluminum. You can bet there was an awful lot of engineering involved to do that... but as a result, they got a smaller, lighter, yet stronger body. And not only that, but it cost them less and it is more "green" to manufacture.

Yeah, I call that technical excellence.

You can dislike their products and design decisions, and dislike their OS if you want. But denying Apple's "technical excellence" is to deny reality.

Re:"Designers" are taking over. That's a problem. (1)

Jane Q. Public (1010737) | more than 3 years ago | (#36578218)

Pardon me: I meant that technical excellence *IS* somewhat subjective. But nevertheless, I assert that Apple products have plenty. You can't deny good engineering when it is right in front of your face..

Re:"Designers" are taking over. That's a problem. (1)

_4rp4n3t (1617415) | more than 3 years ago | (#36579314)

You're missing the point. GP is suggesting that engineers should be responsible for UX / UI design, as well as making it work. Parent is arguing that designers should, well you know, do what they're trained to do do, and design, while engineers should then engineer those designs.I very much doubt it was an engineer who came up with the scroll wheel idea for iPod. Yes, sure, engineers made it work, and did a great job of doing so, and that's how it should be. And quite what case construction has to do with software engineering escapes me.

Re:"Designers" are taking over. That's a problem. (1)

Jane Q. Public (1010737) | more than 3 years ago | (#36578234)

"Thank god designers and business analysts are keeping developers from creating horrible interfaces and forcing unusable workflows on end users."

They AREN'T. I think that was GP's point.

Re:"Designers" are taking over. That's a problem. (1)

Anonymous Coward | more than 3 years ago | (#36579000)

I'm a scientist, rather than a programmer or a designer like you guys, but I think the GP is right. I've been using a lot of different software for a long time, and it's not getting easier to use. I'm pretty sure that I'm not alone in finding this, too. I think the GP's example of Firefox is a good one. The user interface changes with each release make it harder and harder to use. Functionality that was easily accessible in the old versions is very difficult to find, especially when they get rid of familiar user interface elements like the menu bar and its menus. By the time we figure out where everything is, the next version of Firefox is out, and they've moved everything once again. Microsoft has done the same with recent versions of their Office suite, and it also has become much less efficient. Software was easier to use when programmers designed the user interfaces. At least there was some consistency between applications then, but that has been eroded really badly now that designers want every app's user interface to look unique from every other app.

Re:Try Not To Code (1)

im_thatoneguy (819432) | more than 3 years ago | (#36578354)

I would say it's somewhere in between.

A larger part of being a manager is communicating and programming is one of the only languages on earth that is 100% clear since it compiles and does exactly what you told it to do.

I like to write "Psuedo-code" or create a primitively scripted demo so that I'm not just talking about how the user will interact with the application--I can show it.

I would say learn enough, on the side, on your own time so that you can create prototypes but don't worry about contributing project-code. Your job is to contribute direction. If you haven't gone through years of school or immersed yourself full time for months on end learning the nitty gritty you'll just be a slow handicapped developer contributing questionable code. But if you can script well enough to prototype and understand the concepts of programming you can find creative ways to get around the limitations your developers see.

By nature people are kind of lazy. They aren't anxious to come up with ideas which entail a lot of extra work. As a director or manager it's your job to find the best possible solution and if you aren't responsible for actually doing it you're far less likely to be blinded by the "easy way out". Which isn't to say it'll end up being hard; good developers can often find an easy and creative way to implement something which at first glance is impossible.

Re:Try Not To Code (2)

callmehank (2128210) | more than 3 years ago | (#36576958)

Some of the best PMs out there are technically literate people who also happen to be a resource to programmers. Admittedly, that's rare, but being at least a domain expert in the software project they manage is what PMs should strive to be, rather than being simply trackers and schedulers who report to management.

Re:Try Not To Code (1)

gl4ss (559668) | more than 3 years ago | (#36577058)

but if he is just a project manager who doesn't understand code - then he is in shit if shit hits the fan, just being an interchangeable project manager who can fill excel isn't really that rare so any job he would apply for would have several identical on paper people applying. maybe he wants to avoid ending up as a phb. anyways, my advice to him would be to start with something else than a "ready to run" solution. he could do his own very simple web server in c++(or some basic, python, whatever, anything that makes him do some code that can react to tcp connections by sending some requested data back) for starters for example, it's not that much that the server needs to do for a hello world response, and then go further from that by adding a database connection. and any coder ends up killing some of his own ideas - if he as a project manager has no clue if the ideas are handy for their project or not, he can't call the shots and is a manager in title only and could very well mistakenly sign up for an overkill super expensive database solution for something they could just as well use something like sqlite or something homebrewn.

Re:Try Not To Code (3, Insightful)

donscarletti (569232) | more than 3 years ago | (#36577078)

Coding is sometimes the only way for the manager to understand the problem being faced. Also it is sometimes a good way for the manager to communicate with the team. We had a project manager who decided to implement a small feature that everyone else said couldn't be done in a short timeframe. Firstly, he proved it could be done, secondly through this experience, he then understood enough of the system to not keep asking stupid questions and continue sounding like a retard in meetings. Turned out he was a shit coder, but who cares, we just got someone to re-do it who knew what he was doing once the basic solution had been prototyped. The only person annoyed at him was the CTO, but he was just a relic of the era that systems were so simple, you could write them correctly the first time.

I would say that a project manager should not be making personal contributions. If he is a craftsman who loves his code, then that counts. But mostly the worst thing for objectivity is not code but contributing concepts, designs, theories and of course personal preferences and experiences.

Re:Try Not To Code (1)

metlin (258108) | more than 3 years ago | (#36577158)

I couldn't agree with this more. And especially as a UX focused PM, I cannot stress how important it is that you step away from the code and look at the UI and how it really looks in an objective, customer-centric fashion.

I'm the co-founder of a startup (shameless plug: Deal Umpire [deal-umpire.com] ), and one of our hardest problems has been getting good UX people. I wouldn't trust most backend developers with good, usable design because they assume that the users should be "smart enough" and do not realize that most websites aren't usable enough.

UX is the most important part of a site because that is what your customers judge you by -- and it simply does not matter if you can contribute to code or not, as long as you get the big picture.

So, seriously -- stick to your core competency, and to hell with the coding. Having interviewed developers, PMs, and UX designers, I have to say that you probably bring a very unique skill set that most companies would love to have. Keep that. There's nothing magical or spectacular about coding.

Re:Try Not To Code (2)

TheRaven64 (641858) | more than 3 years ago | (#36577744)

I wouldn't trust most backend developers with good, usable design because they assume that the users should be "smart enough" and do not realize that most websites aren't usable enough.

The simple solution here is to put your most talented developers to work rewriting your customers.

Re:Try Not To Code (0)

Anonymous Coward | more than 3 years ago | (#36577480)

Another way to make technical contributions while limiting the danger of becoming emotionally attached to ideas or contributions is to assign yourself tasks that are off the critical path. Create tools that are not directly part of the project, but which will help the developers: svn hooks, build scripts, automated generation of release notes from Bugzilla, automated tests, etc. After all, your job is to ensure quality (both what gets built and how it gets built), schedule, and morale. Your project is more likely to succeed if you make it easy for the developers to follow procedure.

If your coding efforts are good, then everyone is a winner. If your PM duties prevent you from completing these side projects -- no loss. The main pitfalls are forgetting your priorities and putting your side work ahead of your PM responsibilities, and forcing bad tools/procedures on your team just because you created them (again, the loss of objectivity).

Re:Try Not To Code (1)

AmberBlackCat (829689) | more than 3 years ago | (#36577488)

I disagree. I think everybody who gets do decide what will be done should have to actually do it themselves for at least a little while. Because every plan seems smart while you're sitting in a leather chair, playing solitaire.

Not Ruby (3, Interesting)

Anonymous Coward | more than 3 years ago | (#36576832)

Go Python.
http://diveintopython.org/
Then if you feel you need more jump into Perl. With an understanding of those two languages you should be set to pick up (just about) any other languages easier.

Just my opinion.

Re:Not Ruby (1, Insightful)

inKubus (199753) | more than 3 years ago | (#36576968)

Yeah, Ruby is not what I would do either. Ruby is dying fast. While I'm not a huge Python fan, it's not a bad language. If you're on the UX side you should look at learning HTML5 and javascript libraries like jQuery and javascriptMVC. In my opinion the content management side of the business is going to be where we all end up long term, with most "programming" being telling the CMS what to do and what modules to route documents to. So learning some standards like CMIS, OData, GData, and some big document management systems like Alfresco will get you much further than "building web applications". As much as the designers would like to brainwash you that it's all about the UI (and designers are very good communicators so they can), the reality is that UI is a solved problem. At Fortune 1000 companies, you're not going to see much "programming" in the end user stuff. In general, it's middleware. Your career will be much longer if you learn about the data side, and not at a programmer's level but at an analyst level. The number of analysts will be 100 times the number of programmers in 10 years.

Re:Not Ruby (1, Insightful)

Tacvek (948259) | more than 3 years ago | (#36577150)

I'd dispute that ruby is dying. Ruby is a well designed language, and works just fine. It will remain around, although when it reaches steady-state it will probably not be a particularly popular language anymore.

What is dying is Rails. Rails has been one of the largest driving forces for Ruby. And make no mistake, it is an excellent web MVC framework. Consider that most web MVC frameworks that have come since rails have incorporated at least one component of Rails. For example Microsoft's ASP.NET MVC comes with a routes system inspired by Rails, and has a definite convention over configuration design.

Rails is dying in large part because the MVC frameworks of other languages are now comparably easy to use, meaning that the advantages of using Rails frequently do not overcome the disadvantage of learning a new language, namely ruby.

Ruby was a marketing effort. Nothing more. (0)

Anonymous Coward | more than 3 years ago | (#36577936)

Ruby, and all of the surrounding technologies, were never about the programming. It was nothing but a marketing-induced fad.

Nothing about Ruby is unique or special. The language itself takes the worst of Perl, and then mixes in a broken understanding of Smalltalk, and tries to combine them in a way that just doesn't work well.

Nothing about Rails or the various other libraries and frameworks is unique or innovative in any way. All of those ideas had been expressed beforehand, usually first by the Perl community, and in some cases by the Python community. What's more, the Perl and Python approaches are often much better and easier to work with.

Ruby only became popular because Ruby and Rails were hyped, hyped, hyped and then hyped some more. If enough fools blather on about a given subject, it'll seem important or worthy, even when it obviously isn't to anyone who isn't an idiot.

Re:Not Ruby (4, Informative)

telekon (185072) | more than 3 years ago | (#36578258)

Yeah, Ruby is not what I would do either. Ruby is dying fast. While I'm not a huge Python fan, it's not a bad language. If you're on the UX side you should look at learning HTML5 and javascript libraries like jQuery and javascriptMVC.

Funny, after attending RailsConf last month, I'd say that reports of Ruby's demise are greatly exaggerated. In fact, if your perspective comes from a UX-oriented side of things, I couldn't imagine a better language/framework for you to get started with than Ruby/Rails.

It's only moving more in that direction. Rails 3.1 will include jQuery as the default JS library, supports CoffeeScript and Sass by default, and the new asset pipeline makes it easier than ever to build out your app with a backend REST API and do the heavy lifting on the client with MVC frameworks like Backbone.js

What you should learn first depends on your goals. Are you just curious about programming? Or do you really want to make a shift in your career path? If you work in a Ruby/Rails environment, and really want to get into the coding where you work, then that's the obvious choice. If you're completely new to coding, Ruby is also a marvelous first language to learn. I started with C and Perl, and I WISH Ruby had existed then.

If you just want to understand the dev side of things better, you could start by learning the basics of web development from something like Code School. [codeschool.com] Their Rails for Zombies [codeschool.com] course is a great place to start, and better yet, it's free. If you want to get your Ruby up to snuff, try Edge Case's Ruby Koans [rubykoans.com] .

IMHO, much of the Ruby-hating is jealousy. [github.com] If you're new to programming, you might be unfamiliar with holy wars. [catb.org] Coders develop religious issues over everything from languages, to tooling, to operating systems. You'll have to decide for yourself where you want to start. But Slashdot opinions are probably not the way to make that decision. My advice: Pragmatic Programmers has a very basic intro-to-Ruby book called Learn to Program. [pragprog.com] It might be too basic, it might not. But then you can check out Seven Languages in Seven Weeks [pragprog.com] and decide whether you prefer Ruby, Scala, Erlang, Clojure, etc.

I heartily encourage you to learn to code, whether you find it professionally or personally rewarding. Maybe you can contribute to some open source projects, even if you decide it's not right for your career. Either way, have fun with it.

In interest of full disclosure, I'm a committed Rubyist. We tend to be opinionated loudmouths. But also beware the Pythonistas. They tend to be disgruntled contrarian CS students.

Re:Not Ruby (2)

dkf (304284) | more than 3 years ago | (#36579356)

Ruby is dying fast.

That's some of the most robust "dying fast" I've seen in a while. How many decades do you think we'll need to wait before ordering the hearse?

Re:Not Ruby (1)

digsbo (1292334) | more than 3 years ago | (#36578112)

Not Ruby. I would go with Microsoft C#/.Net. I know, I know, I'll say this on /. and everyone will mod me down, but MS dev tools have a history of being accessible to those with business backgrounds. That's what VB was, originally, a tool for business people to put together something that worked. Now C#/ASP.Net is a great deal more sophisticated than VB 1.0, but there are still the training wheels available for people who might not be ready to build a site from scratch. I know a few people who get started w/ basic HTML, learned ASP, and eventually became full-fledged OO developers, all in the MS ecosystem.

If you were to go Ruby or Python, I think the chances are higher that you'll give up, but it's also slightly possible you'll develop into a full-fledged dev much more quickly (moreso if you go w/ Python).

advice (2)

eexaa (1252378) | more than 3 years ago | (#36576836)

The advice I give to everyone having trouble to get a 'whole project' running is to write a simple game. Like, say, something from Spectrum, or arkanoid, or a zombie pwning game. Nearly everyone started on it, it covers a pretty large amount of problems to solve, and it's fun to do.

Re:advice (0)

Anonymous Coward | more than 3 years ago | (#36576940)

Just speaking as a student here, but the first real group project we had was to make Asteroids using C++ and QT4 to run in Ubuntu, and it was a great exercise in how to look up documentation for projects, how to document our own work so others can use it, how to divide a project amongst ourselves, and how to deal with the organization of there being a team leader, a lead programmer, and the rest of the people who didn't fit in either of those spots. Took roughly a day and a half to write over the weekend in a pizza place with beginning programming students, so you're not looking at anything intensive.

Re:advice (1)

Oxford_Comma_Lover (1679530) | more than 3 years ago | (#36577210)

If your first real project is in C++ and the beginning programmers don't have major issues with it, you're already ahead of the game. In undergrad we once did a project with four CS upperclassmen, and two of us discovered after the project began that the other two really had no idea how pointers worked.

Re:advice (1)

FrootLoops (1817694) | more than 3 years ago | (#36578724)

In undergrad we once did a project with four CS upperclassmen, and two of us discovered after the project began that the other two really had no idea how pointers worked.

Scary. I know of old VB6 programmers who knew how pointers worked!

Re:advice (0)

Anonymous Coward | more than 3 years ago | (#36577126)

Telling a guy who doesn't code to write a game, by himself, as a first project, is like telling a guy who wants to learn about carpentry to build a house as his first project. Not a good first project.

Better idea: Set up code environment on his own PC then download and compile/interpret a whole working program (http://sourceforge.net/, etc), and start modifying and recompiling small subroutines/methods to see how to break/fix/debug code. Go from there. Add routines. Write "hello world", etc.

Re:advice, expanded (1)

kale77in (703316) | more than 3 years ago | (#36579204)

write a simple game

I used to say the same (it's how I learned), but I'd generalize this a bit now... To learn programming you have to have something you want to accomplish by programming. It doesn't stick with you unless you're solving a real problem. That may be a game (and MUD coding was, for me, the most instructive, but it's a bit old-school now). It may be writing a plug-in for a blog/broswer/whatever; could be a facebook app; could be a website; could be anything that grabs you. It'll help if you find into a web community or project full of people doing the same things. If there's a book on the subject, and you're a book person, that'll be a good kickstart. Now that I hire programmers, nothing impresses me so much as a project that's entirely their own work, done for the love of it. This means they imagine, then plan, then self-start, then see it through. If _you_ really _want_ to code something, then do it.

Go back (0)

Anonymous Coward | more than 3 years ago | (#36576838)

You say you are non-technical. If so, then you should definitely go back to school.

Tutorial and Book (1)

callmehank (2128210) | more than 3 years ago | (#36576872)

Michael Hartl's Learn Rails by Example is probably the bets tutorial out there, but beware - it's about 270 pages long, but do the whole thing!
http://ruby.railstutorial.org/ruby-on-rails-tutorial-book

I would also recommend reading cover-to-cover David Black's book: Ruby for Rails (Manning). It's a great way to get introduced to the Ruby language.

All told, that should be about 2-3 months of exposure, enough for you to start. Or at least decide if it's what you want to do.

CS != programming (5, Insightful)

cheeks5965 (1682996) | more than 3 years ago | (#36576892)

first, I think it's awesome that you want to get more education. But you need to keep in mind that there's an enormous difference between computer science and programming (CS!=programming). If you want programming experience or new languages then there are many avenues (self taught and other).

CS is mostly abstract - algorithms, math, etc. you could get a good CS education without needing a computer. It's like the difference between medical school and being a doctor. If you want to be a better doctor then going back to med school wont' make any difference.

Hope this helps. Good luck!

Re:CS != programming (0)

Anonymous Coward | more than 3 years ago | (#36577354)

In terms of the lower level courses, it is algorithms and math that you will actually need to understand to write good, clean code.

I absolutely hated my CS undergraduate years because the vast majority of the stuff did and does not help me. Certainly not the vast majority of the gen-ed requirements. However, most of the CS classes that were not just pure theory do add value (unfortunately, my "Algorithms" class was garbage, but that's because of the professor and not the material).

Given years of real experience versus a fresh graduate, then I would pick the years of experience. However, given the guy that decided to pick up code over the last year or so versus the fresh graduate, then I would probably pick the graduate if everything else is made equal,

Re:CS != programming (0)

Anonymous Coward | more than 3 years ago | (#36577728)

Thank you. God damn, how many slashdotters are still getting this wrong? CS isn't coding. Get it through your brains.

Re:CS != programming (1)

ranton (36917) | more than 3 years ago | (#36577808)

Sometimes when I hear comments like this I am reminded of IT people complaining about the terms "hackers" and "crackers" being used incorrectly. And like the hacker terminology debate, it isn't slashdotter's opinions that matter. In this case it is most likely hiring managers and college administrators (at least its not the press this time).

I disagree (1)

Bacon Bits (926911) | more than 3 years ago | (#36577762)

The truth behind this is entirely dependent upon the school you choose. The CS degree does date back to a time period when most schools did not even own a single computer -- when computing itself was a theoretical science -- but the name endures as it it what people recognize. Certainly, there are an increasing number of Software Engineering and Computer Programming programs at schools, just as there are an increasing number of Information Technology and Computer Information Systems degrees. However, most schools still offer a Computer Science degree, and many still use that term as the one for programming.

Re:CS != programming (0)

Anonymous Coward | more than 3 years ago | (#36578200)

I disagree with you to an extent. I am just about to graduate with a CS degree and so I know what's taught in CS programs--at least in my area. Yes, they do focus on theories and the math side of things. However, they also make you take a few required programming classes. After this point, they let you take more programming classes, if you choose, or database, networking, or project management classes to finish off the degree.

So school would be a good thing. You can also teach yourself to program. One of my co-workers is self taught and he's one of the best developers we have.

I definitely agree that a PM needs to be objective. He keeps the big picture in mind and gives input on our progress as to what should be done a certain way.

My two cents.

Re:CS != programming (1)

FrootLoops (1817694) | more than 3 years ago | (#36578824)

My CS program split pretty well into theoretical and practical halves. Also, some of the less useful courses were just specialized--like Compilers, or Computer Graphics. Your med school analogy,

If you want to be a better doctor then going back to med school wont' make any difference.

doesn't hold up: the hypothetical doctor had already been to med school, while the person who asked this question hasn't had a CS education.

Backwards? (1)

SuperCharlie (1068072) | more than 3 years ago | (#36576898)

Seems like a step backwards in the food chain... Most coders would love to get to any manager status.

Re:Backwards? (2, Funny)

Anonymous Coward | more than 3 years ago | (#36576946)

clearly someone who has never been a manager

Re:Backwards? (3, Insightful)

Anonymous Coward | more than 3 years ago | (#36576976)

Clearly someone who has never been a coder.

Re:Backwards? (4, Informative)

yarnosh (2055818) | more than 3 years ago | (#36577042)

Only if they're seeking money. A programmer who actually cares about programming doesn't want to give it up. Personally, I think technical lead, project manager, or architecture is about as far "up" as I care to go in this business. Beyond that, you're divorced form the code and that's just no fun.

Re:Backwards? (0)

Anonymous Coward | more than 3 years ago | (#36577212)

maybe you know only guys working as coders who think they're on a manager track and not any on coder track? if thinking what you could do, by yourself, then getting lost on empty management mantras is a whole lot less useful than accumulating skills of the craft. it's like that robot scientist on futurama built by that scientist dude on a scary door clip - the human scientist sits at home being a manager and the robot does everything and ends up getting the credit and the ability to do more.

Re:Backwards? (1)

SuperCharlie (1068072) | more than 3 years ago | (#36577252)

I guess Im old and jaded.. Ive worked in a few corpratocracies as both coder and manager, among other things.. and from what Ive seen, there is a hall of programmers who eventually get ridden into the ground with a manager that takes all the glory and makes sure to point out the individual errors. The manager climbs the ladder on the backs of the programmers and in the void a programmer moves up to repeat the cycle. Maybe its just my experience, but at 28, this guy has a lot to learn about the real world..and I walked away to do it for myself.

Re:Backwards? (1)

OddJobBob (1965628) | more than 3 years ago | (#36577238)

How does it go again?
Those that can do
Those that can't do teach
Those that can't teach (project) manage

Re:Backwards? (0)

Anonymous Coward | more than 3 years ago | (#36577804)

Yeah, This statement is stupid every time I hear it. I do and I teach. I teach because I need more developers as good as I am.
People who utter the previous posters statement are largely butt hurt.

Re:Backwards? (0)

Anonymous Coward | more than 3 years ago | (#36578014)

Except I've seen far too many teachers that can't teach and they are still "teaching."

Funny though.

Re:Backwards? (1)

digsbo (1292334) | more than 3 years ago | (#36578124)

Not me. For another 20% to 30% in pay, I end up working about that many more hours, and spend an average of 6-12 months between jobs instead of 1-3 months. And it's a lot easier to convince an employer you're willing take a pay cut to get an offer than to step back to development from management.

Re:Backwards? (1)

Stiletto (12066) | more than 3 years ago | (#36578642)

Bingo. Don't do it. Why take such a step backward in your career? As someone who's spent his career trying to go from code-monkey to management, I say: You're insane.

Why would you give up a career with upward potential, the opportunity to be creative and design, to actually shape and mold a product, not to mention the money, for a "career" where you are merely implementing, filling in the lines with color, working 60-80 hours a week, where your salary flatlines after 4 years, and you're unemployable after 35?

Programming Fundamentals (2, Informative)

Anonymous Coward | more than 3 years ago | (#36576918)

I highly recommend this course. It's from stanford and has all the lectures online. It teaches you how to think about programming.
http://see.stanford.edu/see/courseinfo.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111

Becoming a programmer (2)

Aladrin (926209) | more than 3 years ago | (#36576922)

At my previous job, we had a CSR that we found had an aptitude for testing. So we made him a tester. He soon started to feel like you do: that he wanted to be coding.

He started learning to code on his own time, in the language we were using at work. He found someone in an IRC chatroom that needed some coding done in that language, and he helped them. A couple times. And a few other people.

And most importantly, he told the other programmers he was doing this. We cheered him on, and we told the bosses. He was eventually tried in-house as a programmer, and turned out to have a good aptitude for it.

In just a few years, he was just one of the team and not 'the guy that came from CS, can you believe it?'.

In short, start learning and using the language on your own time, and tell people at work about it.

baby steps (0)

Anonymous Coward | more than 3 years ago | (#36576926)

You learn to program best/fastest if you are actually working on some kind of useful project. On the other hand, if you try too much at once, you will surely break something.

Try learning to program in tiny bits and test frequently. In my case, testing can be as often as every ten minutes. Testing time almost always exceeds programming time.

The other thing is learning to work with other people's code. Almost no useful programs are coded once and left as they are. Code is almost always worked on by several programmers over the years.

You don't learn a natural language (like Chinese for instance) by trying to write a novel. You shouldn't try to learn programming by trying to write something huge.

http://agilesoftwaredevelopment.com/baby-steps [agilesoftw...opment.com]

Introspection before school (1)

mkawick (190367) | more than 3 years ago | (#36576934)

Your options are perhaps limitless. I would suggest that before you decide on anything, ask yourself this one simple question: do you like solving tricky problems... brainteasers.. jigsaw puzzles? Programming is a lot like all of these activities combined and "on steroids."

If you think that you like these then learn Javascript. There are some excellent O'Reilly books on the topic and try doing the fun stuff like drawing graphics in HTML5. By the time you've done something fun, you've learned a ton of the language. Once you have these basic concepts down like functions, variables, structure, and reuse, then you are ready for formal training.

Do not go back to school until you have at least established that you like this sort of thing, that you can be good at it, and that it can compliment your career (or at least make a fun hobby). It'll just waste your money and your time and speaking as a former University professor, it is disheartening to see a student struggle who simply doesn't have the aptitude or interest.

Do it (0)

Anonymous Coward | more than 3 years ago | (#36576944)

Do it. Try writing a plug-in for some bigger application, it'll familiarize you with the bigger picture (how things interact) and give you hands-on experience.

Cliche... (1)

Anonymous Coward | more than 3 years ago | (#36576952)

Everyone who designs wants to develop. Those who normally wish to develop, later find some hidden thirst for art. Those who get married wish they didn't a year later and those who have a car usually decide they need a truck.

It's the human factor. It has nothing to do about some technical desire and if you can find a way to balance these weights of desire, you'll find the key of living an acceptable life.

Re:Cliche... (0)

Anonymous Coward | more than 3 years ago | (#36576994)

And some people have both a car and a truck. Just remember: it's ok to go both ways with cars, it's not ok to go both ways with your asshole.

Requirements and User Experience (0)

Anonymous Coward | more than 3 years ago | (#36576996)

Try designing tests and in general, doing more requirements engineering. You have already have a useful background with UX focused work, with some reading possibly required. Seeing how the system provides and fills customer requirements leading to the payment of the billable hours can be a highly satisfying feeling.

Do NOT become a professional coder. (0)

Anonymous Coward | more than 3 years ago | (#36577034)

Stay in management roles.

So, you like to program every once in a while. Doing it full time is completely different: more pressure, having to come up with solutions in others time frame, etc .... keep it as an avocation if you still want to enjoy it.

Secondly, at least for now, management positions aren't being off-shored.

Thirdly, you'll have a longer career as a PM and in management. 28? As a coder (Software Engineer - whatever), you'd have 12 more years before your taken out back and shot.

Forth, to quote Erma Bombeck - "the grass is always greener over the septic tank." Coding is the septic tank.

Fifth, if you really really really love to code that much, get therapy and get on some meds.

How can you manage what you don't know? (0)

Anonymous Coward | more than 3 years ago | (#36577832)

How can you manage that which you don't understand (especially fully)? It's also all about how much effort he want to put in. Anything IS achievable IF you "live it" -> http://ask.slashdot.org/comments.pl?sid=2271446&cid=36577786 which, imo, IS the only way and only way to be an effective respected mgt. figure of coders, period. To be a leader, you have to lead by example too... and know your stuff, otherwise you don't get respect!

APK

P.S.=> I wish him luck because you can ask him yourself -> John Carmack (legendary, we all know it) said this:

"Sometimes? It's time to take that 'HARD RIGHT TURN' in your life to get to where you want to be" (not EXACT quote but close enough & he's done that with rocketry & done fairly well @ it no less... talk about a "hard right turn" from computer genius coder to "rocket scientist" type more or less!)

... apk

Some technical knowledge is useful but.... (0)

Anonymous Coward | more than 3 years ago | (#36577036)

I'm a purely UX (user experience) person who, previously, has coded up solutions (we're talking old server side scripting) and hand coded more than a few sites. These days I occasionally do private projects so I can understand the technology, mostly so I can ensure I can negotiate with those who have to build what I scope out and ensure any compromise between the ideal user experience and the practical time available to the developers is optimised and balanced . What I make sure I don't do is put on my engineering hat whilst designing the functionality as creating a good User Experience should be about the business and user needs first before worrying about the technical limitations - that can be worked out later. With a good engineering team the answers is always yes, given enough time and money! I also see the same thing applying partly to visual design as well - I could do visual design but it is also best to separate from the core UX work as it's closer to implementation than the functionality design a UX person does.I prefer to let those who excel at these things do their stuff rather than trying to be a jack of all trades on the projects I get paid to do.

yes, there is a HUGE shortage of progammers! (0)

Anonymous Coward | more than 3 years ago | (#36577048)

you could be making $150,000 a year, live in a mansion, have 8 cars. Obama just said we have a 'shortage of engineers'!

apparently, we have had a shortage since about 1998. god knows how we don't just collapse in a heap of rubble.

Re:yes, there is a HUGE shortage of progammers! (1)

hoggoth (414195) | more than 3 years ago | (#36577152)

> you could be making $150,000 a year, live in a mansion, have 8 cars.

I take it you don't line in New York or LA or San Francisco or... the USA...

yawn... again? really? okay... (0)

Anonymous Coward | more than 3 years ago | (#36577100)

A: "I want to be a programmer!!!!11!"
B: "What do you wan't to code?"
A: "I don't know... YOU tell me..."
B: "Stop wasting my time. You don't have it in you."

Pretty much every good(!) programmer had a motivation bigger than just wanting to be a programmer.

People who want to be a programmer just to be a programmer waste their and other peoples time.

comitting code versus programming (1)

fermion (181285) | more than 3 years ago | (#36577102)

First, as an engineer you have problem solving skills that many of the population does not have. After all, that is what engineering is about, working the problem, be it finding parts, or working on traffic flows, or calculating impedance's, or calculating stress.

That problem solving skill is critical to programming, which, at a high level, may not involve committing code.Even before writing any machine readable code, there is a great deal of design work to be done. Understanding the problem, building prototypes, decided if those prototypes are suitable given available resources. For instance, depending on the language one uses the design in going to be different. A couple years ago I had the experience, in a class for high school students, watching a recent computer science grad trying to implement a program in Robo Pro, which has no variables. Watching him trying to fit the tools to the his solution, rather than the other way around, really made me realize why senior managers were needed to help the new programmer.

So this is what I would say. Programmers and codes are now widely available. If one wants to get a CS degreee and become a software developer that is great. One can look at the states of software and hardware and know that we always need more good engineers that can create excellent products. You may already be there. Short of this there is benifits to knowing the languages and processes your programmers are using, not becuase you are going to contribute code, but because you then know what kind of requests and requiments are appropriate given the constraints that are being made by the language and processes. For instance Ruby on Rails is very high level language, and as such imposes many more constraints to how a web site is developed than if that website were developed in lower level interpreted language, like say forth. We deal with the constraints due to the overall effeciency of the development process.

So I would not sweat the contributing code. No would I micromanage process. What I would do is learn the tools that are being used. To do this you will have to design and write code. But maybe make it your own personal project.

If you want to get more into programming... (2)

DaveHowe (51510) | more than 3 years ago | (#36577108)

Why not look into contributing to an Open Source solution in your chosen area? see if you can find (for example) some PM tools that almost are good enough, and make them better?

Code reviews (4, Interesting)

roman_mir (125474) | more than 3 years ago | (#36577114)

Maybe you want to schedule 1-2 code reviews per week and participate in them first, just observing how the developers do it?

Start from there, then you'll be in better position to judge whether this is something you are really interested in.

Re:Code reviews (0)

Anonymous Coward | more than 3 years ago | (#36578140)

Stay out of code reviews. It can be tempting for managers to be involved in them (they are meetings after all), but that is very detrimental to having an effective code review. The point of a code review is that it is a peer review. As soon as you have management involved there will be a disincentive for people to report bugs since it would make their co-workers look bad. It can also slow down the meeting as non-code topics will be more likely to come up. To have an effective meeting, everyone should have already reviewed the code and understand it. Adding people who don't have to do the prep-work makes it harder to make sure everyone is ready.

Getting to the point where you have effective code reviews is difficult and delicate. Don't risk breaking it.

Re:Code reviews (1)

roman_mir (125474) | more than 3 years ago | (#36578288)

I said:

just observing how the developers do it

, I didn't say: "you do the review".

Take off your manager hat if needed, tell them you want to learn, not to judge them there.

Similar "backwards" progression here (1)

Anonymous Coward | more than 3 years ago | (#36577128)

I've done exactly what the OP is suggesting, moving from a more (in my case) marketing-management role into a programming one. For years I had known that I wanted to do some programming, I had taken classes, I had made hello worlds here and there, I built some websites. Built many many servers. Eventually I decided to quit my job and go freelance, thinking that would help, but within a few months I discovered that programming was going to be the thing for me.

What happened? Well, I launched my business and I started "web designing" and ran into every trap associated with that along the way. No longer did I have a crack team of design pros, project managers, directors, etc. to back me up. When it came time to present my work I always felt nervous even if I had done a stunning job with something. In those circumstances I can talk circles around any code I've written but I could care less to defend a really beautiful design (to me it "just works"). So over time I began taking more and more complex jobs, first with a bit of custom programming, then a bit more, and now a lot. After a couple years of doing this I finally feel confident calling myself a programmer.

Going freelance probably is not the best route to go to make this transition. I looked at it as though I was getting paid to go back to school, just getting paid a lot less. Over time I have climbed back up the ladder and now get paid about the same but probably more (the upward trend is great). This is a key point: you are starting over. If you manage to negotiate anything but a starter wage you're really being hired as a management guru again and that is hard thing to shake.

Somehow you will end up climbing the ladder just like everyone else... so dive in. I think you're already on the right track to do a bit of css theming. Now try php or ruby templates. Then really dig into your API docs and run like crazy. Take on "easy" coding tasks like adding/removing things from display and then work your way up to handling froms and user data (and the security issues that come with it). Stay up all night coding if that's your thing. It certainly works for me.

Keep it as a hobby/part-time endeavor (3, Insightful)

Dr. Winston O'Boogie (196360) | more than 3 years ago | (#36577176)

I would not suggest sacrificing salary earning years for a temporary career change, which is what I see as the summary of the situation. To do anything for an entire career and be happy requires that your are extremely passionate and interested in the field. I am not sensing that sort of level of interest, and that the priorities here are to be winding up doing something other than engineering in the long term.

I can understand feeling bad about not being able to contribute a certain way in your current environment, but everyone is limited in the things they can contribute in some way. It is a bit of the maturing process to be able to settle for not being able to do everything (as much as many of us would like to).

If the desire to program is deeper than I am giving credit for here and you are willing to sink significant time into, I suggest viewing the language/programming environment as the tool, and the problem as the focus. If your goal is to set out to "learn ruby-on-rails", you'll not get much out of it. If you goal is to solve a particular problem, and you happen to choose ruby-on-rails as the way to realize the solution, that is the way to learn something the most important skills you need as a programmer (and what will be relevant when the technology trend-du-jour changes).

There's all the resources you need on-line at your fingertips to learn as much about programming as you want, so it is all a matter of how much you are willing to sacrifice your free time and energy to dive into it.

One last tip: If you focus on real problems that interest you and not academic exercises, you will learn the important skills faster.

CS != Software engineering (2)

rocket rancher (447670) | more than 3 years ago | (#36577184)

Going to a CS department with the expectation of learning how to be a commercial code jockey is not an optimal strategy. Perhaps this is off-topic, but I'll try to keep it brief and focussed. One recent poster wanted to take a CS degree to become a better coder, but wanted to skip the gen ed requirements that four year degrees have, and this poster also suggests that taking CS courses will help him be a better coder. The thing is, CS is not about coding. It's about investigating the nature of computability and developing models and the mathematical tools capable of describing the models in rigorous ways so that they can be analyzed. You already have to be a good coder if you want to do CS, and if you aren't, you need to take programming courses which are usually found in engineering or MIS departments, not in CS departments.

Programming is a CS tease, self-teach instead (4, Interesting)

vlueboy (1799360) | more than 3 years ago | (#36577200)

It's just that having the degree doesn't set you too far ahead of the pack in this economy. While you're studying others are sharpening their resume in small jobs till their skills harden to the point that nobody even asks for proof of a degree when they see a years worth of related bullet points.

I'm in a similar situation to yours career-wise. Started working tech support around age 17 and since then only desktop support gigs have been offered. This summer, I finally stopped getting typecasted, thanks in part to a remote Unix server operations support gig that somehow left some programming-relevant buzzwords in my resume that I could actually prove semi-daily use of. Without the shell experience gained there, I wouldn't be working with front-end code. I'm at a small company and still transitioning, since the assignment is a short paid internship. My resume will finally say that I've done development full-time, rather than call-center or user-facing jobs.

My first suggestion to you is to re-check yesterday's discussion [slashdot.org] , which was a refreshingly civil rehash of "CS degree isn't programming, yada, yada." Make sure you scale it to >120 comments to get the most detail out of it; just take a break every half an hour to think how the comments apply to you and give it a couple days to review the whole thing seriously. Even to IT insiders, it seems that a CS degree isn't understood --I reluctanctly got one, and somewhat wish I had taken a 2 year degree at a tradeschool approach instead of being forced to plough all the way thru advanced Calculus, Math theory and a bunch of "core" humanities classes. At our age you are well rounded as you'll get and your skills will not really benefit from the degree's forced requirements... unless you quit your job to go fulltime into the 4 CS year degree. Only around half of CS classes are coding, so your job might actually be providing you with more hands-on experience with a single project than you get out of public colleges' degree programs for a whole semester.

Anyways, since you are already writing SOME code and queries towards your company's codebase and bottomline, then you don't need a full 4-year CS degree if you're looking for future jobs at mid-size and small places --the resume's degree blurb is to secure your FIRST programming job, which you indirectly are already in.

So, try to learn the languages and environments on your own (time is hard to find, but force yourself to do little things like regularly trying out examples at code-snippet blogs.) It's very important that you regularly use one or two big IDE's (Eclipse, Visual whatever) and vi / emacs for shells scripts, php and xml. Get familiar with CVS and Maven for code repositories; try out tutorials on youtube to see how they work, and force yourself to default to an Ubuntu 10.04 boot so that you have a shell handy, a compiler and are only apt-get away from Eclipse and other things. If you can live daily with tools that the other devs have, then you're a step closer to slowly push your way... oh, and since you're not a coder at the current company, you'll probably not be given a chance there --ever. A jump away might be the only way; chicken and the egg, really. It takes a good bullet point or two in your resume about "experience with X" programming skills that a junior position for a full-time programmer will appreciate. And without temp agencies, it's hard to kinda make the jump, so it can take you years to get a lucky break.

Enjoy a nice drink... (2)

Panaflex (13191) | more than 3 years ago | (#36577218)

Sure, go home, crack open a book on programming and sip a cold one. Do some chapter projects, get to know a bit everyday and you'll learn a lot. Start with other peoples samples and learn how to improve or change parts to do what you want.

But unless your truly devoted you won't be part of the code staff anytime before your project is done. At the very least you'll gain an understanding of how it works and what causes delays.

Some people are pretty amazing... there was a kid who learned C coding and submitted his first Linux patch within 6 months of touching a computer for the first time. But chances are that you don't have 8,000 hours time and a rabid passion to devote to get to that level of understanding.

Coding is for foriegn nationals, not US workers (1)

walterbyrd (182728) | more than 3 years ago | (#36577234)

The US IT career field is getting offshored, and inshored, to death. The few jobs that cannot be offshored, and being given to visa workers, as US workers train their H1B replacements.

Please see the hdnet, Dan Rather report: "No Thanks for Everything." I think they took it off youtube, but you can still get it from iTunes.

Re:Coding is for foriegn nationals, not US workers (1)

vonshavingcream (2291296) | more than 3 years ago | (#36577566)

I have repeatedly tried to send our coding offshore. I have to say that the dozen or so times that we tried, it has always turned out bad. We ended up having to do all the work over again or for the first time (because they just didn't do it.) I'm saying all experiences are this way .. we have just not had the luck of finding a quality coding house that could produce what we asked for in a timely fashion. And we tried everything from the $3.00 / hour to the $25.00 /per hour houses all with very similar results. In my experiences, someone who can code , and it at your place while doing it, is worth a few dollars more per hour.

Re:Coding is for foriegn nationals, not US workers (1)

Warlord88 (1065794) | more than 3 years ago | (#36577898)

Out of curiosity, where did you try to find the send the coding offshore? India?

Re:Coding is for foriegn nationals, not US workers (1)

digsbo (1292334) | more than 3 years ago | (#36578142)

To get decently managed groups from India, you end up paying nearly the same total cost as you would in the USA. Cheap offshoring firms give crap quality; expensive ones mediocre. It seems, from some of what I'm hearing, that US firms are starting to figure this out and the offshoring trend (at least in companies where finance is not focused on only the future 2 quarters) is slowing down.

Pick one (2)

AtlantaSteve (965777) | more than 3 years ago | (#36577240)

Ultimately, you can either be a PM or a developer. I agree with other comments, that trying to be both simultaneously invites failure. That said, it seems like most careers in I.T. involve "stepping sideways" into something along the way.

I'm more accustomed to seeing this flow in the opposite direction... people who start off as developers, yet later in their careers step into management, hands-off architecture, pre-sales support, etc. However, there's no reason why you can't flow the other way. You would have a hard time being taken seriously at something truly hardcore, like development of compilers, kernels, or large enterprise back-end systems. However, who are we kidding... **most** of the JavaScript coders I've ever met were HTML designers who gradually stepped into development, and a ton of PHP or Ruby guys just kinda stumbled into it with no Computer Science background at all.

However, if you want that career path... you ARE going to have to "shit or get off the pot", and say farewell to being a PM (at least in the sense that most people use that job title). A true PM stays the hell out of the codebase, although you can pitch yourself as having "team lead" experience if you want to leverage that background. As far as making the transition, do the same thing any other entry-level programmer would do. Pick up a degree in the evenings, or maybe some certifications (they can matter a little bit at the entry-level). Dive into an open source project, so you have some resume code floating out there. Make your company aware that you want this transition, and be prepared for the fact that you likely will need to change companies for it to really stick.

Also be aware that you may be talking about a pay cut at first, because you're going from being an experienced PM to an entry-level coder. However, senior coders make more money than PM's... so you can be better off in the long run as far as that goes.

Good luck.

Guide to Ruby (0)

Anonymous Coward | more than 3 years ago | (#36577274)

I always thought "Whys Poignant Guide To Ruby" Was the best guide for Ruby that ever existed:
http://www.cs.uni.edu/~wallingf/teaching/188-agile/ruby/whys-poignant-guide-to-ruby.pdf

Its free. Its awesome. Check it out!

Programming (0)

Anonymous Coward | more than 3 years ago | (#36577314)

At university you do not learn to program. You learn most likely one language at a very basic level so you can do your course work. Maybe you have to look at two, three or four languages. But in the end, programming or coding (as it is called by mathematicians) is an art, which can only be learned in a long process. That's why so many people are so lousy programmers. They come from university and they do not have the experience of a master or even bachelor in coding. They are computer scientists and if they did something useful during their studies they know how to understand the problems of a customer and transform that into a model of some kind, which is the basis for the stuff to be produced for the customer.

I personally would not go for Ruby as a business decision, because Ruby is good for 80% of any enterprise problem, but we all know that the last 20% are the really difficult ones. I worked on projects in PHP, C and Java during my career and currently everything goes in the direction of models and meta-models and the necessary transformations/compilers. Very promising in this area is Java as a target language, but we also look into Scala or even assembler like languages.

However, if you want to improve your skills in writing simple queries for very small (in a sense of not complicated) applications you could go for a scripting language like Ruby. But you do not need CS classes you need a good Ruby book and a lot of time for training an talking about good practice.
 

Learn to be more humble (1)

bigsexyjoe (581721) | more than 3 years ago | (#36577344)

First of all, I have plenty of experience with managers who think they can code a complex website because they can write SQL queries. I say learn to get your hands dirty doing, but don't do it to get in the way of your engineers. Just learn to understand what their job is, don't try to do it. Now I think the key to writing good code is experience. School, websites, books, etc don't really teach what you should be doing to build and maintain a complex production site. While you can learn things like design patterns, the abstract knowledge isn't that helpful without diving in and knowing why to code that way based on your experience. You'll learn quickly that programming languages like Java aren't really that hard, per se. But coding a site requires a lot of other knowledge (CSS, database stuff, server stuff) and a lot of wisdom about what is good coding. That being said, there are a few things to learn to even be able to code for web environment. You need to know your front-end, which is HTML, CSS, Javascript. You need to know SQL. And then I suppose you'd need to know a language. Learn whatever language the site is in, I suppose. I say the best thing for you to do is maybe just concentrate on front end stuff, and make some mock-ups for your engineers. But in the end, you just have to learn what team work is about and not think you can know how to be a software engineer without actually doing it as your profession.

Why. What. When. Whatfor (1)

drolli (522659) | more than 3 years ago | (#36577368)

Before anything else, answer a few questions seriously to yourself

-why do you believe you make a good coder?

-do you belief learning a specialization of coding will help you with the current task professionally or do you believe coding skills in general will make you more valuable for your employer?

-is there a timescale on your career where you see that a missing formal or informal qualification blocks you, and if so, when?

-Do you want job security, personal fun, or a payrise? (or all)

Please understand that "i am happy at my job and think about learning ruby for rails" does not qualify for me as a complete motivation to use time and energy for it.

UGH (0)

Anonymous Coward | more than 3 years ago | (#36577606)

Great another idiot who thinks he can just "pick up" programming and throw some god-awful code together. If it works, it's good, right? I pity the poor sob who's going to have to maintain your crap. Ruby, ugh. You and the Java dweebs. I wish you'd all go back to digging ditches.

Maybe try something new (1)

phy_si_kal (729421) | more than 3 years ago | (#36577664)

Opa is a recently released open source technology that mixes together front-end and back-end code. See http://opalang.org/ [opalang.org] Also, there are packages for MacOSX, which is probably your environment ;) If you can try it, I'm really curious about how easy it is for a non-programmer to learn this kind of programming language.

Programming Field (0)

Anonymous Coward | more than 3 years ago | (#36577722)

My 20cents
Before you start learning a language think about in what area do you to work.

Engineering & High Performance Application: C then C++. (Maybe even some assembly language)
High performance i mean Audio plugins, Video and other stuff.

Ecommerce: PHP, Ajax for interactivity, HTML, CSS. (There is other languages like Ruby on rails but PHP has the most momentum here)

Browserbased applications: Javascript, HTML, CS
(Big growth area with Jnode being added to Windows 8....Javascript very underestimated language.)

Normal application development: Python
(Python is seeing alot of growth...For example of Python API is going to be added to Chrome)

Live it, only way (start doing it) (0)

Anonymous Coward | more than 3 years ago | (#36577786)

Got an app you always wanted to make? Start it now.

How about a website you always wanted to do?? Start it now... perhap THAT especially, & especially now and nowadays!

(See - the big thing now really, is online stuff. Every company HAS to have it, as it's called "the salesman that never sleeps" or offers online processing of data and money flow!)

Plus, think about it:

HTML5 just came out the door and even Microsoft's "biting"...

(E.G.-> Witness Windows 8, .NET being put on "the back burner" apparently vs. HTML5, Silverlight too)

Now - Odds are, You will have to spend money to MAKE money though.

That generally means equipment, education for training (optional but HELPS, @ least it does for me, saves time in mistakes (Data Structures was an excellent example for myself there @ least)), & perhaps even books, but the web nowadays? Almost as good as a "general purpose/catch all language book"...

Plus, today's programming tools today and methods? Hey - they truly are WORLD'S BETTER than when I started (early 90's) and the web makes it that much better too, along with (ugh gotta say it) Open SORES!

I.E.-> Perhaps some coursework @ a local colleage (go cheap as you can, courses are really what YOU put into them, and some of the professor, but more of your own effort).

Most of all, HOW BAD DO YOU WANT IT?

You can go this route.

I pretty much did in the early 1990's for PC Client-Server DB work & it paid off...

You have to start doing it, it will probably be "slow going" @ first though, always is, like riding a bike. You'll get it though...

E.G.-> I was there during the DOS -> Windows 16 bit transition & learned on 8088's (small school was why) & then once in the "real working world"?

It was ALL Windows (big change from tty terminal/console mode/DOS apps to GUI, but once you get it? Cake, & BETTER imo (for many things, mostly user friendliness)).

(Why go for DP work in MIS/IS/IT? Data Processing (what CIS/MIS degrees give you really) IS truly, the "steady-eddy" in the field of programming & often "segues" into webwork too!)

Simply because everyone's got DATA, but nobody manages or processes it the exact same as the next guy - thus, usually always work in it really & on MANY fronts!

The money today? It's not in apps...

(Well, it is in custom business apps, & always WILL be for MIS/IS/IT dept.'s)

BUT RATHER, imo, in DATA, & data of all kinds...

See... I did the route I am telling you, but in a MUCH DIFFERENT "ERA": The 1990's, pre-internet & gained that later via ASP.NET work on the job...

Now - Once you have the principles down & a good set of fundamentals, or if you came of some form of computer work or "power user" grade experience? It comes faster...

I.E./E.G.-> Languages, & learning new ones? Quicker... they're all PRETTY MUCH Object.Property Method approach nowadays & for decades now anyhow.

It's NOT about knowing a specific language though, or toolset/API - it's about PRINCIPLES & CONCEPTS! Say in C/C++ you know how to open/read-write/flush-close a file... you say, "I know what needs to be done in C++, now I just need the syntax in Pascal!" etc.

I did freeware/shareware to "keep abreast" of MORE & different style of coding & to know more... pays off!

Mostly to learn the Win16/Win32 API, the underpinnings of Windows itself, and yes, ven .NET, & inside out via diff. languages marshalling it.

It gave me a LOT more understanding of how things are done, how they work, and how to use them!

(Which saves you "in a pinch @ times" if say, a prebuilt control won't do it for you (which does save time since they're usually prebuilt code objects (better than headers for C/C++ really, more functionality, specific functionality for purposes AND since you paid for those, you got support too))).

You get so you can build things, yourself, & not have to depend on prebuilt stuff... takes time, but it comes with practice.

See - I came MOSTLY out of the IBM "big iron" midrange/mainframe world to PC Client-Server... Big change, but more "versatile" & it knocked the SNOT out of the old way, because of costs AND versaility imo!

APK

P.S.=> Some of the results for me, mostly done as a student no less? Here is a TINY partial list of my favs. (& if I can do it, so can anyone else, just on a diff. front nowadays imo (the web, & HTML5)):

----

Windows NT Magazine (now Windows IT Pro) April 1997 "BACK OFFICE PERFORMANCE" issue, page 61

(&, for work done for EEC Systems/SuperSpeed.com on PAID CONTRACT (writing portions of their SuperCache program increasing its performance by up to 40% via my work) albeit, for their SuperDisk & HOW TO APPLY IT, took them to a finalist position @ MS Tech Ed, two years in a row 2000-2002, in its HARDEST CATEGORY: SQLServer Performance Enhancement).

WINDOWS MAGAZINE, 1997, "Top Freeware & Shareware of the Year" issue page 210, #1/first entry in fact (my work is there)

PC-WELT FEB 1998 - page 84, again, my work is featured there

WINDOWS MAGAZINE, WINTER 1998 - page 92, insert section, MUST HAVE WARES, my work is again, there

PC-WELT FEB 1999 - page 83, again, my work is featured there

CHIP Magazine 7/99 - page 100, my work is there

GERMAN PC BOOK, Data Becker publisher "PC Aufrusten und Repairen" 2000, where my work is contained in it

HOT SHAREWARE Numero 46 issue, pg. 54 (PC ware mag from Spain), 2001 my work is there, first one featured, yet again!

Also, a British PC Mag in 2002 for many utilities I wrote, saw it @ BORDERS BOOKS but didn't buy it... by that point, I had moved onto other areas in this field besides coding only...

Being paid for an article that made me money over @ PCPitstop in 2008 for writing up a guide that has people showing NO VIRUSES/SPYWARES & other screwups, via following its point, such as THRONKA sees here -> http://www.xtremepccentral.com/forums/showthread.php?s=ee926d913b81bf6d63c3c7372fd2a24c&t=28430&page=3 [xtremepccentral.com]

It's also been myself helping out the folks at the UltraDefrag64 project (a 64-bit defragger for Windows), in showing them code for how to do Process Priority Control @ the GUI usermode/ring 3/rpl 3 level in their program (good one too), & being credited for it by their lead dev & his team... see here -> http://ultradefrag.sourceforge.net/handbook/Credits.html [sourceforge.net] or here http://sourceforge.net/tracker/?func=detail&aid=2993462&group_id=199532&atid=969873 [sourceforge.net]

AND lastly: http://g-off.net/software/a-python-repeatable-threadingtimer-class [g-off.net] [g-off.net] where I got other programmer's work WORKING RIGHT (in PyThon no less, which I just started learning only 2 week ago no less) by showing them how to use a "Dummy Proxy Function" as I call it, to make a RepeatTimer class (Thread sub-class really) to take PARAMETERIZED FUNCTIONS, ala:

def apkthreadlaunch():
                                      getnortonsafeweb(sAPKFileName = "APK_1_NortonSafeWeb360Extracted.txt".rstrip())

a = RepeatTimer(900, apkthreadlaunch) # 900 is 15 minutes... apk

Where it was NOT working for many folks there, before (submitted to the maker of the RepeatTimer class no less, & yes, it WORKS!)

----

What do I have to say about that much above? I can't say it any better, than this was stated already (from the greatest book of all time, the "tech manual for life" imo):

"But by the grace of God I am what I am: and his grace which was bestowed upon me was not in vain; but I labored more abundantly than they all: yet not I, but the grace of God which was with me." - Corinthians Chapter 10, Verse 10

(And, because I got LUCKY to have been exposed to some really GREAT classmates, professors, & colleagues on the job over time as well)

... apk

And Product Manager != Project Manager (1)

IntentionalStance (1197099) | more than 3 years ago | (#36577794)

He's probably first level support for some package

And let's be honest (1)

IntentionalStance (1197099) | more than 3 years ago | (#36577818)

Learning to programme should be completely trivial if you've got any talent.
Learning a whole eco-system of development tools which is what you'd need to do to hold down a serious job is a much bigger task of course.
A decent CS degree from a good school won't teach you how to code - they'll assume you know that pretty much as an entry requirement

Do you need to program? (0)

Anonymous Coward | more than 3 years ago | (#36577872)

Ask yourself do you actually NEED to program. Does it put food on your table? Money in your IRA? If not, then keep your day job and play at home when you're bored. Since you are so close to programmers you may actually need to keep your programming skills sharp and develop new ones, just from a career point of view. At 28 trying to enter a field comprised of really smart, talented individuals, committted pissed off desperate programmers will do nothing but draw embarrassment and scorn unless you are a talented quick study or have a thick skin.

From Experience (0)

Anonymous Coward | more than 3 years ago | (#36578092)

it is great you want to learn code. I learned to code before I ever got to college and I do not believe it improved my abilities that much. Coding is one of those things that changes so often you have to re-learn anyway, so you may as well get used to self-teaching. If it is Ruby on Rails you are after I would recommend Rails for Zombies. http://railsforzombies.org/

It is a quick free and great way to get going in rails.

The rewards from programming are not casual (1)

holophrastic (221104) | more than 3 years ago | (#36578398)

Right now, you like to code because you do a small amount of bounded coding, and it's fun to see your work producing benefits. But like so many other disciplines, the next step is the exact opposite.

If you graduate up to the next step of programming, you'll find that you spend an inordinate amount of time sweating details and in general frustration. By the time you work through a given task or project at this next level, you'll look back and not quite understand why it took you ten times longer than it used to take you to do only 10% more.

The rewards in programming come at the third level. The level where you go end-to-end on a task, project, or entire project. It's then that you discover that for the same amount of time as in the second stage, you can now get done an entire task or project, all by yourself, and it's really really cool.

If you're planning on sticking with it, or would be willing to do so if it winds up suiting you, then hey go for it. There are many great ways to pickup programming in any language. Just find someone to steer you past the six small things that any given language has as stumbling blocks. If you choose Perl, then talk to me. In two hours I can ensure that you skip the ten months of horror that most people go through with Perl, all because no one told them six subtle things -- like hidden variables, context-sensitive variables, the particulars of list context, and why, as a human being, you should always be using references.

But if you're planning to pickup programming only to get the rewards for a short while, like a year or two, then you are going to be sorely defeated. It can be dreadful, awful, and just plain rude.

I know what you're thinking. You're thinking that Ruby isn't Assembler, and it isn't C, and it isn't Basic. Ruby's designed to actually get things done, and moreso Ruby on Rails. So how could it possibly be so painful?

The question is the actual answer. Your house is easy to understand because you expect it to be a house. You expect your car to drive on the road, and hence your car is easy to drive. The world is quite different in things like PHP and Ruby on Rails and Perl, and programming in general.

The smaller lower level languages are really hard to learn, there's very little to learn, and you're left wandering in an open and endless field, with a pile of wood, hammer, and nails. You can build any house you want, but you'd better be an architect.

The larger, higher-lever languages are closer to frameworks. They are really easy to learn, there is a tonne to learn, and you're left in a reserved plot with a box of Ikea furniture and an allen key. You can easily build your house. But it's going to be that house, the way it is, and you get to hope that it fits into the plot, and that your couch isn't too big.

The world of hurt in programming is never the programming. It's in figuring out how your english intentions can possibly be translated into rational logic. After that, it's just syntax and typing, each of which is easy.

That's why you like it now. Your tasks haven't hit the threshold where understanding what you want is difficult. The second level thrusts that into your life with the sentence "I know what you want. But you've used two oxymorons in your description." When project demands conflict in logic, it can be arduous to talk them through until they don't.

When you learn to do that really well, that's when you graduate from level 2 to level 3, and life becomes beautiful, because you wind up with a skill that amounts not to programming at all, but to disecting business logic. It's really cool. And that's why good programmers can solve real-world problems with ease.

PM IS *NOT* CODING (1)

ip_freely_2000 (577249) | more than 3 years ago | (#36578604)

Your job (should be) to define requirements, manage the roadmap, talk to customers/prospects and prep the product marketing and sales functions. Coding is not part of your job. If you want it to be, then you need to re-think your career path. Not to say being a coder is bad, it's just that you cannot be both and be successful at it. Choose wisely.

Computer science is not programming (1)

cjonslashdot (904508) | more than 3 years ago | (#36578676)

Computer science is not programming. Computer science is not the same thing as software engineering.

If you just want to learn how to write simple programs or build simple e-commerce sites, don't waste your time going back to school.

A computer science degree will teach you to understand programming and understand computers. It sounds like you just want to learn how to build things.

However, if you want to build complex, reliable things, you should realize that this is not done through programming: it is done through design. I would recommend that you study some simulation languages, to develop a good feeling for concurrency issues, and that you learn some functional programming languages.

Job Security and On the Side App Development (1)

DaRat (678130) | more than 3 years ago | (#36578878)

One advantage of being on the product / project management side is that you'll have more job security if you've got good people skills. It's very easy to offshore dev jobs, but much harder to offshore the product or project management roles.

If you really want to code, why not work on an app or open source dev project on the side? Keep your day job, but do something else on the weekends and evenings until you're sure that you want to make the switch and have the skills to carry it through.

Find a new way to enjoy coding (1)

ferrisoxide.com (1935296) | more than 3 years ago | (#36578934)

Well.. if you can take some advice from a crusty old coder. After 20 years of coding I've recently swapped over to working as a product manager. As much as I miss coding for money I'm now finding new ways to code for pleasure. I code for my kids, I code for myself - and I no longer feel the pressure of having to produce code under crazy time constraints or the demands of managers with limited technical knowledge.

If you're coding as well as managing it's far too easy to get sucked into the code and forget your other duties. Or piss developers off by getting into their faces a bit too much. I've done both since starting as a PM and realise now that the best part of my job is building a bridge between the techie and non-techie worlds. And that's a joy.

I have a small project that I work on over the odd weekend, helping build services for parents of kids with autism. It's paid work but not much more than beer money - though being Australian that possibly means a lot. But it also feels like I'm contributing something meaningful. Maybe find something like that - something where you can practise your coding chops, have fun and do some good.

You don't love it - you won't excel at it (1)

presidenteloco (659168) | more than 3 years ago | (#36579162)

In your comment you said a number of things.
You said you are non-technical. Coding is all about mastering very particular technique.
You said you don't want to make it your career, which suggests you don't have a deep
interest in the hows and the whys of quality coding/software engineering.

So why not leave it to those who have either been doing it since the age of 14 or
who have a gift and a love for the craft and the science of it.

It sounds like you might do better at the other aspects of the business.
But anyway there are lots of lighter-weight options than a CS degree.
Try continuing education courses at a university or collage. Or a diploma program
at a college. Or as others have said, the MIT online courseware.

Old School job start (0)

Anonymous Coward | more than 3 years ago | (#36579220)

Old School job start was by saying, "I wrote this really killer batch file!"

The rest is downhill from there. Along the way, you will experience "Stockholm Syndrome" with management (a different perspective now). You will flat-line when you finally understand the marketing department.

Have a great trip.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>