Slashdot Mirror


Ask Slashdot: Stepping Sideways Into Programming?

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?"

152 comments

  1. Try Not To Code by WrongSizeGlass · · Score: 5, Insightful

    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.

    1. Re:Try Not To Code by nine-times · · Score: 5, Interesting

      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.

    2. Re:Try Not To Code by callmehank · · Score: 1

      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.

    3. Re:Try Not To Code by gl4ss · · Score: 1

      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.

      --
      world was created 5 seconds before this post as it is.
    4. Re:Try Not To Code by donscarletti · · Score: 3, Insightful

      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.

      --
      When Argumentum ad Hominem falls short, try Argumentum ad Matrem
    5. Re:Try Not To Code by metlin · · Score: 1

      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), 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.

    6. Re:Try Not To Code by Anonymous Coward · · Score: 0

      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.

    7. Re:Try Not To Code by Anonymous Coward · · Score: 0

      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).

    8. Re:Try Not To Code by AmberBlackCat · · Score: 1

      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.

    9. Re:Try Not To Code by TheRaven64 · · Score: 2

      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.

      --
      I am TheRaven on Soylent News
    10. Re:Try Not To Code by im_thatoneguy · · Score: 1

      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.

    11. Re:Try Not To Code by donscarletti · · Score: 1

      Well, I would hope very much that he is not doing the duel role of PM and UX _designer_, that would be a serious conflict of interest. Designers in particular need a lot of careful oversight and critique about whether what they are doing at least passes the coworker test in intuitiveness and ease of use. Having a project manager with an understanding of user experience is great in this case since it at least gives another person to review whether something is actually as intuitive as it is in the designer's mind.

      Coding is extremely important to a good designer anyway. Not necessarily efficient or elegant code like a career programmer should write, but quick prototype code. Firstly, to express their vision in a very concrete way, if you can clarify and express your ideas in detail, writing code is pretty trivial. Secondly to allow an interface to be quickly _tested_ by coworkers and if they are lucky by focus groups of typical users. Frequently I have seen designers who consider what they do to be separate from coding tend to be limited to re-skinning what the programmers have designed rather than being able to design interactive experiences on the own.

      --
      When Argumentum ad Hominem falls short, try Argumentum ad Matrem
    12. Re:Try Not To Code by Anonymous Coward · · Score: 0

      I agree with this..
      Sometimes, the easiest way to illustrate what needs to be done is to hack together an example, recognizing that it's not production ready, etc.

    13. Re:Try Not To Code by wvmarle · · Score: 1

      For a manger I think it's very useful to at least be able to do the basics of what the people they manage do. I mean: if you manage coders, it'd be very helpful to be able to code yourself. Most likely not that well, that doesn't matter, as you're not the one coding. But understanding what a coder is doing, the tools they use, how they use it, why they use it, where the typical problems lie: that should be helpful. When talking to your coders about their work it helps understanding why they're doing things the way they do, and to have more realistic expectations of what can be done and what not.

      But don't expect to be as good a coder as they are - you're manager because of your management skills, managing coders because you know about coding. Coders are coders because they know how to code stuff, and how to code it well.

    14. Re:Try Not To Code by wvmarle · · Score: 1

      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.

      One of the other main jobs of a manager is to keep their subordinates (in this case: their coder) detached not as much from the "big picture" but everything that goes in it: legal issues, marketing, planning deadlines, decisions on graphical design, UI layouts, features to include (and to exclude), etc.

      A coder may give their ideas for features and so, but in the end it should be the manager that tells the coder "this is how it's going to look like, these features have to be included, now make it work like that". To the coder to implement just that. And to the manager again to oversee that the coder is actually implementing what they want them to implement.

    15. Re:Try Not To Code by syousef · · Score: 2

      Most importantly the project manager got your respect, and I dare say the respect of others on the team. Tech staff hate it when they have a manager that understands nothing and couldn't code their way out of a paper bag. Proving that he wasn't one of those would have been very good for his reputation and team morale. Pity he seems to have made the cardinal mistake of annoying those above him. Did he end up being fired or put aside? Then the team would have said "You know old so and so, he wasn't so bad. Not a great coder but at least he proved he could do it".

      Personally I think managers should pair program with an experienced team member for at least half a day about once a month. I'm in the minority.

      --
      These posts express my own personal views, not those of my employer
    16. Re:Try Not To Code by Anonymous Coward · · Score: 0

      I want my manager to catch all the shit from the top. I'll handle the shit from the bottom.

    17. Re:Try Not To Code by pandrijeczko · · Score: 1

      Yep, as a techie engineer & consultant for the past 30-odd years, a skilled Project Manager is a great asset to have on a project.

      I've got good communications skills and have no problems standing in front of customers, but I've tried to manage smaller projects myself purely from my own skills on many occasions - most of the time it's been fine, but on others it's got into a stalemate position until I've pulled in a PM to help sort out the tangle and get it moving.

      So don't try to straddle both skill areas - they're mutually exclusive.

      --
      Gentoo Linux - another day, another USE flag.
    18. Re:Try Not To Code by Jaruzel · · Score: 1

      Short and Anonymous this may be, it's still one of the most insightful statements in this whole comment thread.

      --
      Together, We Can Make Slashdot Better. I Do NOT Mod ACs. - Check Me Out
    19. Re:Try Not To Code by swalve · · Score: 2

      This is one of the big mistakes in the IT field, I think. Coders *should* know the big picture stuff, so they don't start going down unsustainable paths. My boss is one of those "insulator" bosses, and while he does it out of the belief that it is the right way to do things, it leads to problems. Grown ups *want* to know where they fit into the bog picture.

    20. Re:Try Not To Code by Anonymous Coward · · Score: 1

      As a former UX product manager (3yrs out of a nine year PM stint) I'm in the camp that believes you have to understand what your product is about 'under the covers'. Did I code? No. Teach full on UNIX sysadmin & tools courses at one point - you bet. A PM job, is both strategic and tactical - including such things as inputing to design requirements, as well as (in a smaller company) tracking the competition and their competing product functionality. Understanding the code, to my mind, is a reasonable objective. Do all PM's go to that level - I suspect not. I've heard very successful Marketing Managers boast that they don't need the level of knowlege you are asking about. Lastly - if you plan to move up and on - my own example might help: I made a concsious decision to back away from getting my hands dirty. Too much going on - too much of the low level detail to ever be expert - while management value the ability to deal with the Tech-Heads - your clients will value your ability to talk in a language they understand - and appreciate the ability you have to frame products in terms of business applicability (or consumer usage, if that's your product set). There is a fortune to be made for anyone that can stand with a foot in each camp.

  2. Not Ruby by Anonymous Coward · · Score: 3, Interesting

    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.

    1. Re:Not Ruby by inKubus · · Score: 1, Insightful

      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.

      --
      Cool! Amazing Toys.
    2. Re:Not Ruby by Tacvek · · Score: 1, Insightful

      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.

      --
      Stylish sheet to fix many problems in Slashdot's D3: https://gist.github.com/801524
    3. Re:Not Ruby by digsbo · · Score: 1

      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).

    4. Re:Not Ruby by telekon · · Score: 4, Informative

      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. Their Rails for Zombies 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.

      IMHO, much of the Ruby-hating is jealousy. If you're new to programming, you might be unfamiliar with holy wars. 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. It might be too basic, it might not. But then you can check out Seven Languages in Seven Weeks 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.

      --

      To understand recursion, you must first understand recursion.

    5. Re:Not Ruby by dkf · · Score: 2

      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?

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    6. Re:Not Ruby by aztracker1 · · Score: 1

      I think that jumping into web application dev is something taken too lightly... if you are coming from a UX/Designer background I would encourage to become very good with hand-coded HTML, CSS (start with 2, then 3)... Then start with some JavaScript reading (self-plug). Only then would I start digging into the backend, and would suggest the language(s) your company is using first.

      If you try to do html + css + javascript + backend language + backend framework + persistance layer (SQL) all at once it becomes overwhelming, and you'll be very slow to master anything or become proficient with it. There are a lot of layers, parts, syntax and languages that go into web application deelopment... short of using node/express/mongo on the back end very slow learning as well.

      Though node and mongo would be a shorter learning path, would still suggest a strongly typed language and some SQL variant after you get the front end and JS down. Mainly for knowledge and exposure.

      --
      Michael J. Ryan - tracker1.info
    7. Re:Not Ruby by wjcofkc · · Score: 1

      The book seems to stop in 2004 which is Python 2.3, I believe. There have been a lot of changes since then, especially moving to 2.6. Perhaps someone could recommend a better free online resource or a more up to date book?

      --
      Brought to you by Carl's Junior.
    8. Re:Not Ruby by Anonymous Coward · · Score: 0

      Hey, I was there, too. Where you that guy in the t-shirt and jeans?

    9. Re:Not Ruby by telekon · · Score: 3, Funny

      Dude, yeah! Were you the guy with the faux-hawk and glasses?

      --

      To understand recursion, you must first understand recursion.

    10. Re:Not Ruby by Anonymous Coward · · Score: 0

      "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."

      Really? For a UX designer, you'd recommend web development, which has a history of WILFULLY ignoring user interface history, ignoring standards, accessibility problems, poorly re-invented widgets, flash...?

      Any modern, desktop widget toolkit would be a better choice. Qt would be an excellent choice. Ruby + Qt wouldn't be a TERRIBLE choice, but Python + Qt would be better.

      "IMHO, much of the Ruby-hating is jealousy."

      Oh, grow up. You really think the people who dislike ruby are just jealous because you have something they don't (want to use)? Ridiculous.

    11. Re:Not Ruby by inKubus · · Score: 1

      If programming languages are indeed religions, as the gp posted, then Ruby is the equivalent of mindless evangelical Christianity. Everybody's doing it man, you don't have to do anything but use Ruby on Rails and you'll be saved. PFT! But I guess people have to learn on their own. If that works for you, great, but I'm not going to hire you for my team where we typically use 5-6 different languages a day, none of which are anything like Ruby, and which Ruby fails to prepare you for.

      --
      Cool! Amazing Toys.
  3. advice by eexaa · · Score: 2

    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.

    1. Re:advice by Anonymous Coward · · Score: 0

      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.

    2. Re:advice by Anonymous Coward · · Score: 0

      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.

    3. Re:advice by Oxford_Comma_Lover · · Score: 1

      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.

      --
      -- IANAL, this isn't legal advice, and definitely isn't legal advice for you. Also, Squee!
    4. Re:advice by FrootLoops · · Score: 1

      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!

    5. Re:advice by wvmarle · · Score: 1

      I have never written a game, yet I have written several other pieces of software. Just because I enjoy coding doesn't mean I enjoy making games.

      Well here my curriculum vitae when it comes to programming. It will sound familiar for many people at my age (late 30s).

      I started off when I was about 10, 11 years old with Basic. That's nearly 30 years ago now. I did quite interesting things there, once I rigged up a shaking coil to my MSX home computer via the joystick port, allowing people to time their game, and enter their name for high score. That's the nearest I came to writing a game, and that was for one night only. It was a success, no-one had ever seen something like it before.

      Later through secondary school I didn't program, then in college had to learn Turbo Pascal as a side subject, which was dead easy to me and some other people with coding experience, and totally incomprehensible for the other half of the class. We did some quite interesting things with it, such as controlling a small car.

      And then some eight years ago Python. A very easy to learn language, concise, I love it. With the help of GTK and Glade is making a GUI a breeze, it's actually fun to do. As soon as you understand the basics, signals and so, it's all so easy. It's now my absolute favourite language. And this one I'd recommend anyone who would want to learn coding, and wants to be able to write simple to semi-complex projects. It's a scripting language, so not as fast as compiled languages, but on modern hardware for most applications fast enough.

      Shortly after I used Python also to power my web sites, and in the process picked up MySQL. Now SQL that's a totally different animal when it comes to programming. I can write simple queries, but nothing fancy at all. I just don't understand the way it works well enough - this mainly due to lack of experience and training. I just never bothered to learn it, as it's not necessary.

      Half a year ago I started playing with Android, and thus had to learn Java. It's become "yet another language" syntax-wise. The basics of programming are the same across languages after all. It's fun, but I'd love to be able to use Python there. Java may be a technically better choice (I trust Google on that they don't make such a choice over one night of ice), it's missing the ease of programming Python offers. But I manage quite well, I have to say.

      Well to come back on the "write a game" advice: that's not my advice. I'd write something that I need - an itch to scratch. I learned programming first out of curiosity, later expanded on that when I felt the need. I needed a fax manager - I wrote one, and learned Python to do it. I needed a web site - I wrote one, and leaned html and MySQL for it. I wanted to write an Android app, and learned Java and Android platform for it. I've no intention to learn a new language just for learning that language, but if the need is there I will.

    6. Re:advice by swalve · · Score: 1

      Pointers are a fad. What kind of fucking cheap-ass computer doesn't have enough memory to pass the contents of an entire dataset around as variables? Sheesh.

  4. Go back by Anonymous Coward · · Score: 0

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

  5. Tutorial and Book by callmehank · · Score: 0

    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.

  6. CS != programming by cheeks5965 · · Score: 5, Insightful
    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!

    --
    -- Flame me and I will happily flame you back. Bring it!
    1. Re:CS != programming by Anonymous Coward · · Score: 0

      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,

    2. Re:CS != programming by Anonymous Coward · · Score: 0

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

    3. Re:CS != programming by ranton · · Score: 1

      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).

      --
      -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
    4. Re:CS != programming by Anonymous Coward · · Score: 0

      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.

    5. Re:CS != programming by FrootLoops · · Score: 1
      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.

    6. Re:CS != programming by EnsilZah · · Score: 1

      How about this analogy instead?

      I'd like to cook a fancy dinner once in a while, should I study biomolecular chemistry?

    7. Re:CS != programming by SanityInAnarchy · · Score: 1

      If you want programming experience or new languages then there are many avenues (self taught and other).

      Granted, but I'd be slightly wary of being self-taught, and I can't stress this part enough, learn Ruby before Rails. Same goes for any language -- learn a language well, and learn the fundamentals of programming, and only then should you consider picking up a framework, particularly one which does as much for you as Rails.

      CS is mostly abstract - algorithms, math, etc.

      Depends where it is. The program I'm going through now had us doing actual programming for at least the first two years. The harder stuff is going to be the theoretical components (math, algoritms, etc), but that's certainly not the extent. I mean...

      you could get a good CS education without needing a computer.

      The better CS programs simply will not allow this. Aside from that, my non-CS courses are starting to require computers for other reasons, also.

      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.

      But before you become a doctor, you need some medical school.

      --
      Don't thank God, thank a doctor!
    8. Re:CS != programming by FrootLoops · · Score: 1

      It's a little extreme, but replacing "study biomolecular chemistry" with "go to culinary school" gives a high quality analogy, both for the person who asked this question and in general. I imagine most good cooks have gone to culinary school, just like most good coders have a degree in CS. To dabble in cooking a nice meal you certainly don't have to go to culinary school either.

    9. Re:CS != programming by next_ghost · · Score: 1

      So? Coding isn't programming either. There's only so much you can learn about programming without diving into the theory behind it. I know that from personal experience. I've started learning coding from books and by hacking together simple programs when I was 10 years old. But taking a CS degree still made a huge difference in the quality of my code.

  7. Backwards? by SuperCharlie · · Score: 1

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

    1. Re:Backwards? by Anonymous Coward · · Score: 2, Funny

      clearly someone who has never been a manager

    2. Re:Backwards? by Anonymous Coward · · Score: 3, Insightful

      Clearly someone who has never been a coder.

    3. Re:Backwards? by yarnosh · · Score: 4, Informative

      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.

    4. Re:Backwards? by Anonymous Coward · · Score: 0

      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.

    5. Re:Backwards? by OddJobBob · · Score: 1

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

    6. Re:Backwards? by SuperCharlie · · Score: 1

      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.

    7. Re:Backwards? by Anonymous Coward · · Score: 0

      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.

    8. Re:Backwards? by Anonymous Coward · · Score: 0

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

      Funny though.

    9. Re:Backwards? by digsbo · · Score: 1

      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.

    10. Re:Backwards? by Stiletto · · Score: 1

      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?

    11. Re:Backwards? by syousef · · Score: 1

      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.

      I've actually turned down being groomed for management "one day" after a brief stint as an acting manager. I told them I'd do the work any time they were in a bind, but not interested long term. In a way I've shot myself in the foot should the coding work ever dry up but I don't think I could be happy as a manager. One interesting effect was that people seem to feel a lot less threatened by me - they know I'm not the good technical guy that could "beat them" working my way up the ladder, and they know I'm putting forward technical solutions on their own merits, not in order to big note myself.

      --
      These posts express my own personal views, not those of my employer
    12. Re:Backwards? by wvmarle · · Score: 1

      There is a big difference between skill set needed to be a coder, and to be a manager. Many great managers will make a poor coder, and the other way around. Even if said manager is managing a software project.

    13. Re:Backwards? by Anonymous Coward · · Score: 0

      That's the kind of managers we fear most. No good as a coder but then want to manage others.... shush....

  8. Programming Fundamentals by Anonymous Coward · · Score: 2, Informative

    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

    1. Re:Programming Fundamentals by Anonymous Coward · · Score: 0

      Excellent link. Thank you for sharing.

  9. Becoming a programmer by Aladrin · · Score: 2

    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.

    --
    "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
    1. Re:Becoming a programmer by Anonymous Coward · · Score: 0

      I'd agree totally with this and have seen it many times. I myself learned a few languages in my own time while I was working in support, did a little coding from time to time and then eventually made it full time into dev. This wasn't something that I did overnight and I'd say it'll take a year or two.

      Good luck

  10. baby steps by Anonymous Coward · · Score: 0

    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

  11. Introspection before school by mkawick · · Score: 1

    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.

  12. Do it by Anonymous Coward · · Score: 0

    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.

  13. Cliche... by Anonymous Coward · · Score: 1

    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.

    1. Re:Cliche... by Anonymous Coward · · Score: 0

      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.

  14. Requirements and User Experience by Anonymous Coward · · Score: 0

    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.

  15. Do NOT become a professional coder. by Anonymous Coward · · Score: 0

    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.

  16. Some technical knowledge is useful but.... by Anonymous Coward · · Score: 0

    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.

  17. yes, there is a HUGE shortage of progammers! by Anonymous Coward · · Score: 0

    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.

    1. Re:yes, there is a HUGE shortage of progammers! by hoggoth · · Score: 1

      > 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...

      --
      - For the complete works of Shakespeare: cat /dev/random (may take some time)
  18. yawn... again? really? okay... by Anonymous Coward · · Score: 0

    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.

  19. comitting code versus programming by fermion · · Score: 1
    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.

    --
    "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
  20. If you want to get more into programming... by DaveHowe · · Score: 2

    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?

    --
    -=DaveHowe=-
  21. Code reviews by roman_mir · · Score: 4, Interesting

    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.

    1. Re:Code reviews by Anonymous Coward · · Score: 0

      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.

    2. Re:Code reviews by roman_mir · · Score: 1

      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.

  22. Similar "backwards" progression here by Anonymous Coward · · Score: 1

    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.

  23. Keep it as a hobby/part-time endeavor by Dr.+Winston+O'Boogie · · Score: 3, Insightful

    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.

  24. CS != Software engineering by rocket+rancher · · Score: 2

    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.

  25. Programming is a CS tease, self-teach instead by vlueboy · · Score: 4, Interesting

    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 , 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.

  26. Enjoy a nice drink... by Panaflex · · Score: 2

    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.

    --
    I said no... but I missed and it came out yes.
  27. Try MIT Open Courseware by LibRT · · Score: 2
  28. Coding is for foriegn nationals, not US workers by walterbyrd · · Score: 1

    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.

    1. Re:Coding is for foriegn nationals, not US workers by vonshavingcream · · Score: 1

      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.

    2. Re:Coding is for foriegn nationals, not US workers by Warlord88 · · Score: 1

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

    3. Re:Coding is for foriegn nationals, not US workers by digsbo · · Score: 1

      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.

    4. Re:Coding is for foriegn nationals, not US workers by Anonymous Coward · · Score: 0

      F*k you

  29. Pick one by AtlantaSteve · · Score: 2

    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.

  30. Guide to Ruby by Anonymous Coward · · Score: 0

    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!

  31. Programming by Anonymous Coward · · Score: 0

    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.
     

  32. Learn to be more humble by bigsexyjoe · · Score: 1

    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.

  33. Why. What. When. Whatfor by drolli · · Score: 1

    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.

  34. UGH by Anonymous Coward · · Score: 0

    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.

  35. Maybe try something new by phy_si_kal · · Score: 1

    Opa is a recently released open source technology that mixes together front-end and back-end code. See http://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.

  36. Programming Field by Anonymous Coward · · Score: 0

    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)

  37. I disagree by Bacon+Bits · · Score: 1

    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.

    --
    The road to tyranny has always been paved with claims of necessity.
  38. Live it, only way (start doing it) by Anonymous Coward · · Score: 0

    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

  39. And Product Manager != Project Manager by IntentionalStance · · Score: 1

    He's probably first level support for some package

  40. "Designers" are taking over. That's a problem. by Anonymous Coward · · Score: 1

    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.

    1. Re:"Designers" are taking over. That's a problem. by ranton · · Score: 2, Insightful

      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.

      --
      -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
    2. Re:"Designers" are taking over. That's a problem. by Jane+Q.+Public · · Score: 1

      "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.

    3. Re:"Designers" are taking over. That's a problem. by Jane+Q.+Public · · Score: 1

      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..

    4. Re:"Designers" are taking over. That's a problem. by Jane+Q.+Public · · Score: 1

      "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.

    5. Re:"Designers" are taking over. That's a problem. by Anonymous Coward · · Score: 1

      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.

    6. Re:"Designers" are taking over. That's a problem. by _4rp4n3t · · Score: 1

      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.

    7. Re:"Designers" are taking over. That's a problem. by Anonymous Coward · · Score: 0

      The issue is designers are artists and rarely are artists concerned with function.

    8. Re:"Designers" are taking over. That's a problem. by SnapShot · · Score: 1

      Designers are to artists as engineers are to scientists or as innovation is to invention.

      --
      Waltz, nymph, for quick jigs vex Bud.
    9. Re:"Designers" are taking over. That's a problem. by justforgetme · · Score: 1

      well, I don't understand where You are at this because while engineers and scientists may have on appearances few connecting vectors they do have a lot in common with engineers (well, maybe not with copy/paste ones) on the other hand You can't invent without innovating so those two words are kind of mutually inclusive..

      I don't know what designers are to artists, IMO designers are artists who understand how to monetize their services and that is as what they should be used.

      to add to the general designer/developer conversation:
      I think that UI/UX developers should do UI/UX
      I think that busyness logic and backbones should be the responsibility of developers
      I think that designers should be given free room to innovate and to connect UI development with application development having as a responsibility the best possible presentation and performance of UI/UX.

      --
      -- no sig today
    10. Re:"Designers" are taking over. That's a problem. by Jane+Q.+Public · · Score: 2
      No, I didn't miss the point. I'm pointing out that he did.

      "I very much doubt it was an engineer who came up with the scroll wheel idea for iPod."

      Perhaps not... but you had better believe that an engineer was the first person they consulted before moving ahead with the idea... which is the big problem I see, which has not been acknowledged by the other posters here: in far too many situations, designers know about design and little else, and make their designs without confirming or consulting about the design's actual feasibility. Which makes the lives of everybody else in the company miserable.

      Design is great... but engineering should be in on the design process. When designs are approved on their own, before any input from engineering (which happens quite a bit in my experience), the results are often a disaster.

      The case thing was not intended to be an example of software engineering, and I never implied that it did. But software software UI/UX design has a lot more parallels with physical design than many people acknowledge. There is an awful lot of overlap: Where do we put the buttons? How large do we make them? How do we label them? What is the sequence of operations that will make work flow go most smoothly? Etc. At some point it all comes down to Human Engineering (or Industrial Psychology, depending on your POV).

  41. And let's be honest by IntentionalStance · · Score: 1

    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

  42. How can you manage what you don't know? by Anonymous Coward · · Score: 0

    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

  43. Do you need to program? by Anonymous Coward · · Score: 0

    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.

  44. Ruby was a marketing effort. Nothing more. by Anonymous Coward · · Score: 0

    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.

    1. Re:Ruby was a marketing effort. Nothing more. by dkf · · Score: 1

      [Ruby] itself takes the worst of Perl

      Sorry, but I don't believe that. It has neither Perl4 namespace syntax (look it up if you don't believe me; it existed but was utterly horrendous) nor Perl5's "object system" botch, nor even the bizarre oddness that is the plethora of magical global variables with hyper-odd names or even type globs. Damn, but that's got to be a miss on the whole "worst of Perl" front.

      Keep the hyperbole toned down, please.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
  45. From Experience by Anonymous Coward · · Score: 0

    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.

    1. Re:From Experience by Javaman59 · · Score: 1

      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.

      Seconded!

      When I read the OP I thought that he had answered his own question. He wants to code, just because he knows he wants to. That's enough. It's quite easy to get into coding on his own home computer, in his spare time, as a hobby. Instead of watching TV in the evenings, he writes code and enjoys it. He suggested RoR as a potential learning vehicle. Great! It's self contained, so he doesn't have to learn a whole eco-system (compared with .Net or Java). It will be a vehicle for learning HTML, CSS, JScript and SQL, and Agile development. It's also elegant and fun to work with, and has several very good introductory texts. The OP is on the right track already, and just needs a few people to say - "do what you just said, sir".

      --
      I'm a software visionary. I don't code.
  46. The rewards from programming are not casual by holophrastic · · Score: 1

    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.

    1. Re:The rewards from programming are not casual by Anonymous Coward · · Score: 0

      Mod parent up--this is a pretty good response.

      As somebody in a similar (but different) situation, namely as a liason between technical and non-technical staff, and as somebody who's only at that first level of programming, I can vouch--it IS fun now and I'd like to learn more and be able to contribute more. It's not a desire for a career change: it's a valuable skill I'd like to cultivate.

      But at some point, things get harder than I can deal with. The question I've had to face is whether it's worth it to me to put in the considerable amount of time needed to get over that "this is really hard and I can't figure out what's going on most of the time" hump.

      So far, I've had other priorities.

    2. Re:The rewards from programming are not casual by holophrastic · · Score: 1

      Glad to hear from someone a few steps back on this issue. Thanks for the coroberation. Let me know if I can help you directly. I flexed a lot of people's time in getting where I am, so I owe it forward. If you need someone to talk to, or to answer weird-o generalities, or to direct you in terms of goals, easier paths, or horder paths, I'm around. slashdot@holophrasticenterprises.com

  47. PM IS *NOT* CODING by ip_freely_2000 · · Score: 1

    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.

  48. Computer science is not programming by cjonslashdot · · Score: 1

    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.

  49. Job Security and On the Side App Development by DaRat · · Score: 1

    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.

  50. Find a new way to enjoy coding by anchovy_chekov · · Score: 1

    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.

  51. You don't love it - you won't excel at it by presidenteloco · · Score: 1

    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.

    --

    Where are we going and why are we in a handbasket?
  52. Re:advice, expanded by kale77in · · Score: 1

    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.

  53. Old School job start by Anonymous Coward · · Score: 0

    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.

  54. Relatively simple to teach yourself and FUN! by Anonymous Coward · · Score: 0

    Here's what I do when I want to learn a new language that I've never used before:
    1. Buy one of those "For Dummies" books on said language or perhaps "Teacher yourself XXXX programming in 24 hours" or whatever.
    2. Blast through the book over a weekend. Don't get bogged down trying to memorize everything. Read it to get the basic concepts so you can build simple app from memory.
    3. Decide on a small project and start coding it as best you can. I like to build a blackjack game personally. Write functions to select the card, track which cards have been played, allow the user to select number of decks, etc. This will be all text based in a terminal window. Once you've got the game working, add a GUI in whatever OS you are using. Start simple in 2D and just slap cards out there on the table. As you get time, learn to add card flipping animations and card playing sounds from your OS or downloaded from the internet.

    As you build your project you will get stuck many times not knowing how to do something. Either buy a more advanced book to look through as you go or look to the internet for help. DON'T waste your time trying to read an advanced programming book. Just look things up as you need them. Once you've got a couple of smaller "just for fun" projects under your belt then you might want to actually read the whole book. You won't understand half of it until you bang out some code and get stuck forty or fifty times. Once you get the hang of the basics, you can breeze right through a complex book.

    After learning to bang out code in a blackjack game or some other project, you might consider reading a couple of books about algorithms or good code design concepts. I've been doing this since I was 10 years old and I don't want to say it's been working for me for a long time, but let's just say I remember seeing the original Star Wars at the theater... to be more specific... at the drive-in theater.

  55. Give the man a break by evilgraham · · Score: 1

    After all there is more joy in heaven when one sinner repents... But seriously, as a manager you deal with people. They do what they want, and there is nothing you can do about that. Computers, on the other hand, are more amenable, and do what you want, but you have to ask nicely. But let's not kid ourselves, the only thing worth doing in this entire business is programming; anything else is a sideshow. So you want to make a contribution? Well, there has never been a better time to start. The world is full of open-source projects where the people who make things happen also let you know how they do it. Find something that you think is the mutt's nuts and whatever language it is written in, lean that, and take the time to understand how things really work. It will cost some time, for sure, but that's how it's done. It seems that you don't want to be limited in your understanding of what is required to get things working. This is a good attitude. The world is full of people who pull things out of their arses without having a clue. More power to your elbow, Sir.

  56. Programming, paths, and book recommendations. by Koda · · Score: 2

    There's are plenty of things that are great about Ruby on Rails, but I don't recommend *Rails* as a starting point. Without any background in programming, SQL, HTML, or JavaScript, there's a good chance you'll overwhelmed, or at least confused. RoR covers a LOT of ground. I think Ruby, Python, and Groovy would all be good languages to start with, but don't worry about picking "THE" technology yet or a full framework. Even if you do pick the "right" technology that you make into a career, there will be plenty else to learn, now and in the future.

    Here's are some specific recommendations:
    A) First, there is no need to quit your job yet. Consistently use some of your evenings and weekends to explore and learn. If you find out you don't like one of the technologies I've recommended, don't sweat it. It may not be for you, or it just might be the wrong time.

    B) Try some programming, and see how you like the logic and puzzle-solving part of it. Here are two books I'd recommend to get started, in no particular order:
    1) "Python Programming: An Introduction to Computer Science" (Second Edition) by John Zelle
    2) "Why's (Poignant) Guide to Ruby" by _Why the Lucky Stiff - http://mislav.uniqpath.com/poignant-guide/

    C) Try some web development and see how you like the design, layout, and organization of it. Start with the book "Head First HTML with CSS & XHTML" by Elisabeth Freeman & Eric Freeman. You'll learn HTML the new school way, where presentation and structure are separated (and the web is better off for it).

    D) Try visiting some user groups for different technologies, like Ruby on Rails, Groovy on Grails, Java, Python, .NET, MySQL Adobe Flex, whatever. You'll get a feel for the culture while learning new things.

    E) Once you finish the above, there are several directions you can take:
    1) Want to program more? Sign up for a college class on programming. It doesn't matter whether it's C, Java, shell scripting, or whatever. Just take a class to continue developing your programming skills and develop an appreciation for the different aspects of the world of programming. And a class at a community or technical college can be perfect for this.
    2) If you're continuing down the programming path, buy another book on Ruby, Python, or try something new like Java, JavaScript or PHP. If you want something more hardcore, check out "The Joy of C" by Lawrence Miller and Alexander Quilici.
    3) If you continue progressing in programming, and/or if you really want to get into Ruby on Rails, Groovy on Grails, Spring, or any framework, you'll probably want to take a class on Intro to Databases or just pickup a book on SQL. If you liked Head First HTML book, then check out Head First SQL, and/or get the very concise "My SQL Crash Course" by Ben Forta. Knowing basic SQL and database essentials will make you better with Rails, Grails, Spring, or any framework. Or if you really like SQL and organizing things, database development and/or administration can become an entire career. And you may get into data mining or data ETL (over the years I've been exposed to Microsoft SQL Server, Sybase, MySQL, Oracle, Informatica, and lately to Microsoft SSIS).

    F) If you've made it this far, you've probably picked your path, and possibly found a programming language you love. Your next steps may be one of the following:
    1) Dive fully into Rails, Grails, Django, Spring, JSF, force.com, or another framework.
    2) OR Learn more HTML, CSS, and JavaScript. Play with JQuery, Dojo, or another JavaScript library.
    3) OR keep taking college courses, perhaps hardcore CS with Calculus, Physics. That's not the only route, but this will take you from good to great in programming. Don't overlook other options, including a BA in Computer Technology.
    4) OR if you're not not digging hardcore programming, school, and/or you cr

  57. Web stuff is not CS by Anonymous Coward · · Score: 0

    "Programming" means different things to different people. If you just want to do UI stuff or web pages, a CS degree is overkill. CS is a branch of math, and the programing done in a CS curriculum is in languages designed to solve hard problems fast. If all you care about is UI stuff, scripting languages are more than you need. A CS degree will make you a good programmer, but you may find that knowledge of semaphores and category theory are not actually used for the problems you want to solve.

    If you tell us what languages your team uses, we might be able to give better answers. For example, if your team codes in ruby or PHP, you don't need to learn about memory allocation or static typing. You would grow as a person from learning these things, but you will be disappointed to discover that they are not used in those languages.

  58. Just Start by Anonymous Coward · · Score: 1

    If you want to learn just dive into it on your own time. Pick something simple to write like a todo list or a blog and just start. There is a great site called http://railscasts.com which has 200+ screencasts on Rails now. There like mini college classes covering many popular subjects and will help you get up to speed fast. Commit to watching 2 screencasts a day and in 6 months you will know more than you think. Also pick up a good intro to Rails book and read a chapter a day. Also get the intro to Ruby book. Again it wont take long, even as a non programming you will pick it up fast and both Ruby and the Rails framework are great tools to start out on. Not to plug to many sites but there is a nice multipart series on http://nettuts.com that covers everything from setting up rails to making a basic app. I think its 12 or 13 parts now and its a great intro resource out there (most of it is on the free side of their paywal as well).

  59. Why not a coder already? by Anonymous Coward · · Score: 1

    The question I always ask people over about 18 when they ask me about becoming a programmer is: why aren't you one already? There may be a good answer, but I've not heard it, yet. There's nothing stopping you. Programming tools are free and the internet is chock full of free tutorials and books. There are also many great books you can read. The equipment isn't expensive. In fact, all the really good programmers I know (and many who are not so good) couldn't not be programmers. There is this irresistible pull. It's what we do in our spare time when we don't even have to do it. Keep in mind that's who you'll be competing against. So, why aren't you a programmer already?

  60. Do it! by Anonymous Coward · · Score: 0

    Yes start programming. More experience is better. In fact from my point of view no non programmers should be in any management positions over programmers. It is true that to be a great programmer you need talent, just as in any other profession. But, programming is really simple. I teach it to 12 year old boy scouts for a merit badge. As you learn more programming you will be better at understanding the programmers who work on your project. But realize that programming on a commercial project can chew up more time of the other programmers than you save. New guys always do that. So be respectful, start on a side project, or better yet, write some automated unit tests to prove the correctness and increase the code coverage of one of your projects. Then you are writing real code, but a blunder will not put production code in jeopardy.

  61. Options by unsolicited · · Score: 0

    Writing software (Engineer) != Selling software (MBA) != Selling consulting (Sales Engineer)
    Pick an option and become an expert.

  62. It's called a hobby by bryan1945 · · Score: 1

    If you "love what you do", but want to do something else, but don't want to do that something else forever, do it on your own time and make up your own site or something. You don't stop doing something you love doing for something you only want to do for a bit, except as a side job or hobby. Ask to get some more work on projects when you're not busy. Sure, go back to school or take some classes, education is always good.
    Don't take this personally, but having a really hard time finding a job right now, I kinda want to slap you for complaining about a job that you love to do.

    --
    Vote monkeys into Congress. They are cheaper and more trustworthy.
  63. Perl by Anonymous Coward · · Score: 0

    Learn Perl. You won't regret it.

  64. Try a couple classes on javascript by spads · · Score: 1

    You don't really say what technologies you're working in (not familiar with 'UX', but from your mentioning Ruby, I would assume web and would thus recommend javascript. It has a C-like syntax, and is really the central technology of web applications. From there you could also go to php, which also has a C-like syntax. If you really get sucked into it, at some point you'll probably want to take some C for completeness. PERL also has a C-like syntax, with a lot of other quirkier elements. It is probably strongest for the stuff it does best, which does not include web apps.

    Some above posters are right that you might not want to get directly involved in the nuts and bolts of your current projects. However, I think it is imperative that you either (A) learn to program some or (B) be willing to trust a lot of what your developers are telling you implicitly on faith. The best technical manager I have had knew how to program, and he was very smart, though ultimately, he could not ultimately allow himself to get into it much, I presume, because of his other duties, or, perhaps, because he was a bit of a chickenshit. Still, he knew what that stuff involves, which somehow (conscience?) seemed to block him from trying to bullshit or steamroller you too much.

    --
    Bukowski said it. I believe it. That settles it.
  65. The internet is your friend by Anonymous Coward · · Score: 0

    The internet was made by programmers, it is FILLED with information on programming, as any self-taught programmer will tell you.

    Start at the wikipedia page for "computers" and read entirely through it, click every link for something you don't understand. If you need more information than wikipedia provides, use the external links and search google. If google can't answer your questions, try an online forum for programming.

    The MIT scheme lectures with Ableson and Sussman will teach you a ton as well, and are free and open.

    When you're ready for some challenge, I recommend project euler (just google it, it's not hard to find).

    There is no better way to learn to program than trying it and learning as you go; CS coursework is all trivial and useless.

  66. Grill - this is an aswer by luk3Z · · Score: 0

    Make some barbecue or grill something with friends and trink beer and don't waste your time behind the screen ^^

    --
    Recipes for USA bankrupt - http://tinypaste.com/0d66f dd = dollar deluge (printed in the infinity)
  67. all things have good and bad by Eponymous+Hero · · Score: 0

    The Good: designers are now in control of design and UX, meaning the product looks great. this is a boon to developers too, for when we show off our work nobody looks at the screen and says "i bet the code behind that is amazing." they judge your coding ability on how well the designer made it look (or more accurately, how close you rendered the designer's vision with your front-end code). this means users no longer have to click through 3 pages just to finally download that file. it means products tend to follow some kind of standard for things like dropdown lists of US states or calendar pickers for date ranges.

    The Bad: designers are now in control of design and UX, meaning they will throw a "Login" text link here and there, completely disregarding what that actually means to a developer, the deadline and client expectations. or they might completely omit the use case for an unsuccessful form validation, leaving the developer in his former role of making shit up for UX. designers will do these things because they are not computer geeks, and have no comprehension that a "Login" link means designing a database, a user authentication system, password retrieval system, etc., or even how long that will take.

    in the end you've just replaced one set of problems for another, and the only solution we're gonna come up with for the next few hundred years (who am i kidding, we are not going to last that long as a species) is to go back and forth between who has priority, designers or developers. god forbid anyone should cross train both fields (like myself). because design is not really so much about art production as it is about problem solving. at least, the good designers know this.

    --
    insensitive clod overlords obligatory xkcd car analogy russian reversals whoosh pedant fanbois ftfy in 3...2...1..PROFIT
  68. PM to Producer by Anonymous Coward · · Score: 0

    You should be aiming to move on up to "Producer" and then "Executive Producer", etc positions.

  69. MBA by unsolicited · · Score: 0

    In globalization and the flat world, MBA is a must to survive in the ecosystem.