Ask Slashdot: Stepping Sideways Into Programming? 152
thundertron writes "I'm a 28-year-old, non-technical, UX-focused Product Manager at a startup. Overall I'm very happy with my work, but I'm endlessly frustrated that I'm not committing code. I love the few occasions where I commit some front-end code or put together a fairly sophisticated query, but if the onus were on me to put together an entire site my hands would be tied. I've thought about going back to school (or even taking time off from my career to take courses) in CS to immerse myself in programming. The flip side is that I know I won't want to do that forever — I won't want to be employed primarily as an engineer because I like too many other aspects of the business. My best option seems to be to dive into Ruby on Rails and just pick up what I can in my spare time. Perhaps others in the Slashdot community have some suggestions/recommendations?"
Try Not To Code (Score:5, Insightful)
Re:Try Not To Code (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.
"Designers" are taking over. That's a problem. (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
Re: (Score:3, 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 develope
Re: (Score:2)
"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
Re: (Score:2)
Re: (Score:1)
Re: (Score:3)
"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
Re: (Score:2)
"Thank god designers and business analysts are keeping developers from creating horrible interfaces and forcing unusable workflows on end users."
They AREN'T. I think that was GP's point.
Re: (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
Re: (Score:2)
Designers are to artists as engineers are to scientists or as innovation is to invention.
Re: (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/deve
Re: (Score:2)
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
Re: (Score:2)
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
Re: (Score:2)
Re: (Score:2)
Short and Anonymous this may be, it's still one of the most insightful statements in this whole comment thread.
Re: (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.
Re: (Score:1)
Re:Try Not To Code (Score:4, 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.
Re: (Score:3)
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
Re: (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 obj
Re: (Score:2)
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
Re: (Score:3)
I wouldn't trust most backend developers with good, usable design because they assume that the users should be "smart enough" and do not realize that most websites aren't usable enough.
The simple solution here is to put your most talented developers to work rewriting your customers.
Re: (Score:2)
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'
Re: (Score:2)
Re: (Score:2)
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
Re: (Score:2)
Not Ruby (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.
Re: (Score:2, 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 docume
Re: (Score:2, 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
Re: (Score:2)
[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.
Re:Not Ruby (Score:5, 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. [codeschool.com] Their Rails for Zombies [codeschool.com] course is a great place to start, and better yet, it's free. If you want to get your Ruby up to snuff, try Edge Case's Ruby Koans [rubykoans.com].
IMHO, much of the Ruby-hating is jealousy. [github.com] If you're new to programming, you might be unfamiliar with holy wars. [catb.org] Coders develop religious issues over everything from languages, to tooling, to operating systems. You'll have to decide for yourself where you want to start. But Slashdot opinions are probably not the way to make that decision. My advice: Pragmatic Programmers has a very basic intro-to-Ruby book called Learn to Program. [pragprog.com] It might be too basic, it might not. But then you can check out Seven Languages in Seven Weeks [pragprog.com] and decide whether you prefer Ruby, Scala, Erlang, Clojure, etc.
I heartily encourage you to learn to code, whether you find it professionally or personally rewarding. Maybe you can contribute to some open source projects, even if you decide it's not right for your career. Either way, have fun with it.
In interest of full disclosure, I'm a committed Rubyist. We tend to be opinionated loudmouths. But also beware the Pythonistas. They tend to be disgruntled contrarian CS students.
Re:Not Ruby (Score:4, Funny)
Re: (Score:2)
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.
Re: (Score:3)
Ruby is dying fast.
That's some of the most robust "dying fast" I've seen in a while. How many decades do you think we'll need to wait before ordering the hearse?
Re: (Score:2)
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
Re: (Score:2)
If you try to do html + css + javascript + backend language + backend framework + persistance layer (SQL) all at once it beco
Re: (Score:1)
advice (Score:3)
The advice I give to everyone having trouble to get a 'whole project' running is to write a simple game. Like, say, something from Spectrum, or arkanoid, or a zombie pwning game. Nearly everyone started on it, it covers a pretty large amount of problems to solve, and it's fun to do.
Re:advice, expanded (Score:2)
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
Re: (Score:2)
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
Re: (Score:2)
If your first real project is in C++ and the beginning programmers don't have major issues with it, you're already ahead of the game. In undergrad we once did a project with four CS upperclassmen, and two of us discovered after the project began that the other two really had no idea how pointers worked.
Re: (Score:2)
In undergrad we once did a project with four CS upperclassmen, and two of us discovered after the project began that the other two really had no idea how pointers worked.
Scary. I know of old VB6 programmers who knew how pointers worked!
Re: (Score:1)
CS != programming (Score:5, Insightful)
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!
I disagree (Score:2)
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
Re: (Score:2)
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.
Re: (Score:2)
How about this analogy instead?
I'd like to cook a fancy dinner once in a while, should I study biomolecular chemistry?
Re: (Score:2)
Re: (Score:2)
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,
Re: (Score:2)
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).
Re: (Score:2)
Backwards? (Score:2)
Re: (Score:2, Funny)
clearly someone who has never been a manager
Re: (Score:3, Insightful)
Clearly someone who has never been a coder.
Re:Backwards? (Score:5, Informative)
Re: (Score:2)
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
Re: (Score:1)
How does it go again?
Those that can do
Those that can't do teach
Those that can't teach (project) manage
Re: (Score:2)
Re: (Score:2)
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
Re: (Score:2)
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.
Re: (Score:2)
Programming Fundamentals (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
Becoming a programmer (Score:3)
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.
Introspection before school (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 la
Cliche... (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.
comitting code versus programming (Score:2)
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
If you want to get more into programming... (Score:2)
Code reviews (Score:5, 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.
Re: (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.
Similar "backwards" progression here (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 a
Keep it as a hobby/part-time endeavor (Score:3, Insightful)
I can understand feeling bad about not being able to contribute a certain way in your current environment, but everyone is limited in the things they can contribute in some way. It is a bit of the maturing process to be able to settle for not being able to do everything (as much as many of us would like to).
If the desire to program is deeper than I am giving credit for here and you are willing to sink significant time into, I suggest viewing the language/programming environment as the tool, and the problem as the focus. If your goal is to set out to "learn ruby-on-rails", you'll not get much out of it. If you goal is to solve a particular problem, and you happen to choose ruby-on-rails as the way to realize the solution, that is the way to learn something the most important skills you need as a programmer (and what will be relevant when the technology trend-du-jour changes).
There's all the resources you need on-line at your fingertips to learn as much about programming as you want, so it is all a matter of how much you are willing to sacrifice your free time and energy to dive into it.
One last tip: If you focus on real problems that interest you and not academic exercises, you will learn the important skills faster.
CS != Software engineering (Score:2)
Programming is a CS tease, self-teach instead (Score:5, 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 [slashdot.org], which was a refreshingly civil rehash of "CS degree isn't programming, yada, yada." Make sure you scale it to >120 comments to get the most detail out of it; just take a break every half an hour to think how the comments apply to you and give it a couple days to review the whole thing seriously. Even to IT insiders, it seems that a CS degree isn't understood --I reluctanctly got one, and somewhat wish I had taken a 2 year degree at a tradeschool approach instead of being forced to plough all the way thru advanced Calculus, Math theory and a bunch of "core" humanities classes. At our age you are well rounded as you'll get and your skills will not really benefit from the degree's forced requirements... unless you quit your job to go fulltime into the 4 CS year degree. Only around half of CS classes are coding, so your job might actually be providing you with more hands-on experience with a single project than you get out of public colleges' degree programs for a whole semester.
Anyways, since you are already writing SOME code and queries towards your company's codebase and bottomline, then you don't need a full 4-year CS degree if you're looking for future jobs at mid-size and small places --the resume's degree blurb is to secure your FIRST programming job, which you indirectly are already in.
So, try to learn the languages and environments on your own (time is hard to find, but force yourself to do little things like regularly trying out examples at code-snippet blogs.) It's very important that you regularly use one or two big IDE's (Eclipse, Visual whatever) and vi / emacs for shells scripts, php and xml. Get familiar with CVS and Maven for code repositories; try out tutorials on youtube to see how they work, and force yourself to default to an Ubuntu 10.04 boot so that you have a shell handy, a compiler and are only apt-get away from Eclipse and other things. If you can live daily with tools that the other devs have, then you're a step closer to slowly push your way... oh, and since you're not a coder at the current company, you'll probably not be given a chance there --ever. A jump away might be the only way; chicken and the egg, really. It takes a good bullet point or two in your resume about "experience with X" programming skills that a junior position for a full-time programmer will appreciate. And without temp agencies, it's hard to kinda make the jump, so it can take you years to get a lucky break.
Enjoy a nice drink... (Score:3)
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.
Try MIT Open Courseware (Score:2)
Coding is for foriegn nationals, not US workers (Score:2)
The US IT career field is getting offshored, and inshored, to death. The few jobs that cannot be offshored, and being given to visa workers, as US workers train their H1B replacements.
Please see the hdnet, Dan Rather report: "No Thanks for Everything." I think they took it off youtube, but you can still get it from iTunes.
Re: (Score:1)
Re: (Score:1)
Re: (Score:2)
Pick one (Score:3)
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.
Learn to be more humble (Score:2)
Why. What. When. Whatfor (Score:2)
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
Maybe try something new (Score:1)
And Product Manager != Project Manager (Score:1)
And let's be honest (Score:1)
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
The rewards from programming are not casual (Score:2)
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
Re: (Score:2)
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
PM IS *NOT* CODING (Score:2)
Computer science is not programming (Score:2)
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
Job Security and On the Side App Development (Score:2)
One advantage of being on the product / project management side is that you'll have more job security if you've got good people skills. It's very easy to offshore dev jobs, but much harder to offshore the product or project management roles.
If you really want to code, why not work on an app or open source dev project on the side? Keep your day job, but do something else on the weekends and evenings until you're sure that you want to make the switch and have the skills to carry it through.
Find a new way to enjoy coding (Score:1)
If you're coding as well as managing it's far too easy to get sucked into the code and forget
You don't love it - you won't excel at it (Score:2)
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
Give the man a break (Score:1)
Programming, paths, and book recommendations. (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 pl
Just Start (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 boo
Why not a coder already? (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 pul
It's called a hobby (Score:2)
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
Re: (Score:2)
> 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...
Re: (Score:2)
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/ [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, JScri