Forgot your password?
typodupeerror
Education Programming Ruby

Ask Slashdot: Stepping Sideways Into Programming? 152

Posted by timothy
from the implantable-nodules-from-thinkgeek dept.
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?"
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Stepping Sideways Into Programming?

Comments Filter:
  • Try Not To Code (Score:5, Insightful)

    by WrongSizeGlass (838941) on Sunday June 26, 2011 @12:35PM (#36576814)
    One of the most important aspects of a PM's job is objectivity. Once you're part of the team contributing code you'll face the difficulties of having to kill some of your own ideas or contributions. It's never easy to be on both sides of the line when your dealing with more than a few people on a project.
    • Re:Try Not To Code (Score:5, Interesting)

      by nine-times (778537) <nine.times@gmail.com> on Sunday June 26, 2011 @12:52PM (#36576938) Homepage

      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.

      • 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

        • Re: (Score:3, Insightful)

          by ranton (36917)

          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 develope

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

            • 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..
            • by _4rp4n3t (1617415)
              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
              • 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 miserab

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

          • by Anonymous Coward

            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

      • 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 pr

      • by wvmarle (1070040)

        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

        • by swalve (1980968)
          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.
    • 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.

    • by gl4ss (559668)
      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
    • Re:Try Not To Code (Score:4, Insightful)

      by donscarletti (569232) on Sunday June 26, 2011 @01:17PM (#36577078)

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

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

      • by syousef (465911)

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

      • by Anonymous Coward

        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 obj

    • by metlin (258108)

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

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

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

      • 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'

    • 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.
    • by wvmarle (1070040)

      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

    • 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 area

  • Not Ruby (Score:3, Interesting)

    by Anonymous Coward on Sunday June 26, 2011 @12:38PM (#36576832)

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

    Just my opinion.

    • Re: (Score:2, Insightful)

      by inKubus (199753)

      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 docume

      • Re: (Score:2, Insightful)

        by Tacvek (948259)

        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

      • Re:Not Ruby (Score:5, Informative)

        by telekon (185072) <canweriotnow.gmail@com> on Sunday June 26, 2011 @04:49PM (#36578258) Homepage Journal

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

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

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

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

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

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

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

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

      • by dkf (304284)

        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?

    • by digsbo (1292334)

      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 star

      • 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 [frugalcoder.us] (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 beco
    • by wjcofkc (964165)
      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?
  • by eexaa (1252378) on Sunday June 26, 2011 @12:39PM (#36576836) Homepage

    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.

    • 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

    • by wvmarle (1070040)

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

  • CS != programming (Score:5, Insightful)

    by cheeks5965 (1682996) on Sunday June 26, 2011 @12:45PM (#36576892)
    first, I think it's awesome that you want to get more education. But you need to keep in mind that there's an enormous difference between computer science and programming (CS!=programming). If you want programming experience or new languages then there are many avenues (self taught and other).

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

    Hope this helps. Good luck!

    • 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, mos

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

      • by EnsilZah (575600)

        How about this analogy instead?

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

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

  • Seems like a step backwards in the food chain... Most coders would love to get to any manager status.
    • Re: (Score:2, Funny)

      by Anonymous Coward

      clearly someone who has never been a manager

    • Re: (Score:3, Insightful)

      by Anonymous Coward

      Clearly someone who has never been a coder.

    • Re:Backwards? (Score:5, Informative)

      by yarnosh (2055818) on Sunday June 26, 2011 @01:12PM (#36577042)
      Only if they're seeking money. A programmer who actually cares about programming doesn't want to give it up. Personally, I think technical lead, project manager, or architecture is about as far "up" as I care to go in this business. Beyond that, you're divorced form the code and that's just no fun.
      • by syousef (465911)

        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 p

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

    • by digsbo (1292334)
      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.
    • by Stiletto (12066)

      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 3

    • by wvmarle (1070040)

      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.

  • by Anonymous Coward

    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

  • by Aladrin (926209) on Sunday June 26, 2011 @12:49PM (#36576922)

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

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

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

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

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

  • 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 la

  • by Anonymous Coward

    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.

  • 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 p

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

    by roman_mir (125474) on Sunday June 26, 2011 @01:22PM (#36577114) Homepage Journal

    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.

  • by Anonymous Coward

    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 a

  • by Dr. Winston O'Boogie (196360) on Sunday June 26, 2011 @01:30PM (#36577176)
    I would not suggest sacrificing salary earning years for a temporary career change, which is what I see as the summary of the situation. To do anything for an entire career and be happy requires that your are extremely passionate and interested in the field. I am not sensing that sort of level of interest, and that the priorities here are to be winding up doing something other than engineering in the long term.

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

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

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

    One last tip: If you focus on real problems that interest you and not academic exercises, you will learn the important skills faster.
  • 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 computabi
  • by vlueboy (1799360) on Sunday June 26, 2011 @01:33PM (#36577200)

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

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

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

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

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

  • by Panaflex (13191) <convivialdingo&yahoo,com> on Sunday June 26, 2011 @01:36PM (#36577218)

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

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

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

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

    • 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 re
      • Out of curiosity, where did you try to find the send the coding offshore? India?
      • by digsbo (1292334)
        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.
  • by AtlantaSteve (965777) on Sunday June 26, 2011 @01:40PM (#36577240)

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

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

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

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

    Good luck.

  • 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 des
  • 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

  • Opa is a recently released open source technology that mixes together front-end and back-end code. See http://opalang.org/ [opalang.org] Also, there are packages for MacOSX, which is probably your environment ;) If you can try it, I'm really curious about how easy it is for a non-programmer to learn this kind of programming language.
  • He's probably first level support for some package
  • 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
  • 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 us

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

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

  • 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
  • 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 any

  • 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
  • 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 pl

  • by Anonymous Coward

    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 boo

  • by Anonymous Coward

    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 pul

  • 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

Luck, that's when preparation and opportunity meet. -- P.E. Trudeau

Working...