News for hackers. Stuff that matters.
Re:Software Engineers Will Work One Day For English Majors by nirvana on Monday April 23, 2012 @09:52AM (#3878775)
There's a persistent myth that needs to be put down:

It doesn't get at all harder to learn new technologies when you get older. In fact, it gets a whole lot easier.

There's an old saying "You can't teach an old dog new tricks", and this is true, to the extent that any cliche can be, when referring to people becoming set in their ways. For many professions, where the technology doesn't' change, this is true. For programmers "set in your ways" simply describes the method by which we pick up new technology since that's what the profession is all about. (I prefer books to youtube videos, for instance.)

Learning new languages and new technologies and new platforms is a whole lot easier now than it was 20 years ago, in part because the technology for delivering information is a lot more available (hell the internet alone is a huge impact) but also because, having learned a dozen languages the next language is a lot easier to pick up.

Re:Software Engineers Will Work One Day For English Majors by GFischer on Monday April 23, 2012 @10:09AM (#3878858)
I'm 31, and I have coworkers in their late 30s and early 40s, working in a large multinational with legacy systems.

The truth is, while it doesn't get that much mentally harder to learn new technologies, it is very hard psychologically.

For someone used to a large paycheck, to being the go-to guy in the technology and set in their 9-to-5 ways, to get out of their comfort zone, and admit that what they know is no longer relevant is scary as hell, especially for those with families.

So, rather than update themselves and make up all that lost ground from getting too comfortable, they'll try to keep in place the old legacy systems only they can maintain.

I got caught in that trap too, one of my main responsibilities is maintaining a Forte 4GL system ( http://en.wikipedia.org/wiki/Forte_4GL ).

While I've kept myself relatively up to date, it was on Microsoft .NET technology only, and I'm still a few years behind. I wanted to supplement my income, and took a look at the online marketplace, and it confirmed what Hacker News was already showing me: my skills are useless, I don't know Ruby, Javascript, the open source stacks, Amazon Web Services or anything currently relevant and in demand.

I can either try to switch into management, or accept I'm obsolete and take a large pay cut (or try to improve myself on the side, probably by trying to do a startup) if I want to stay relevant.

Re:Software Engineers Will Work One Day For English Majors by brandall10 on Monday April 23, 2012 @10:36AM (#3878984)
I'm 36, and you sound exactly like me when I was 31. Same situation, surrounded by a team who was on average 10 years older than myself married with children, working on mostly legacy stuff. Nobody seemed to really care much about their jobs, just wallowing in skill rot. When I was 32/33 or so I was offered to go into management.

I turned down that management offer, kicked butt where I could and got promoted to a principal engineer. It was at that point I realized I was in a dead end job, went nuts in my free time reading book after book, tutorial after tutorial... and two years later finally summoned the courage to do a Rails project pro-bono on the side for a small local marketing firm; for about 4 mos I was putting in 60-70 hour weeks between my day job and side gig.

Now I have another Rails project lined up for a NYC fashion site that pays about 15% more per hour than my day job and I've been contacted for no less than 5 full time Rails positions, one of which I interviewed for and turned down. The demand for this stack is fierce. And you know what? I'm madly head-over-heels in love with the latest and greatest the web has to offer (ie. meteor.js gives me goosebumps, and at the very least in the near term I want to do a front-end mvc project ala backbone). I'm not great - yet - but I feel like for once I'm really in the game. It's exhilarating. I feel more alive than I have since my early 20s. This NYC contract is about to be signed, and once that happens I'll be saying goodbye to the windows world altogether, join a co-working space, build a network, go to local tech meetups, etc, to ensure I have a steady stream of work. It also helps to have at least 6 mos of savings in the bank to mitigate risk.

Seriously, go thru easy/free books like Learn Python the Hard Way, Eloquent Javascript, Michael Hart's Ruby on Rails Tutorial, the tutorials on the W3C site. You should be able to do all that in a couple months, and that's probably 50% of the battle (okay - there's alot more, but once you have some foundation the rest will be much easier).

EDIT: Wanted to mention about the full time Rails positions, 3 were for small startups, 2 for larger companies. Naturally the small startups you can expect to take a pay cut if you're mostly maxxed out in your compensation in your respective area. But the 2 corporate Rails gigs the recruiters wanted to put me in at or slightly above my total compensation package at my current job (partly due to those being a mixed environment and needing someone with both C#/C++ and Rails skills).

Re:Software Engineers Will Work One Day For English Majors by smountcastle on Monday April 23, 2012 @10:48AM (#3879055)
Be careful.

"Now I have another Rails project lined up for a NYC fashion site that pays about 15% more per hour than my day job"

Contracting is vastly different than being an employee. Your employer pays considerably more than 15% more per hour for you (employer portion of taxes, portion of health insurance , etc.) As a contractor you'll be responsible for those expenses.

Re:Software Engineers Will Work One Day For English Majors by brandall10 on Monday April 23, 2012 @11:04AM (#3879136)
That 15% is not taking into account base salary (I'm including bonus + 401k matching)... it's more like 25% if you look at it that way ;). And this is a pretty entry level rate... in a year from now I know I'll be able to command at least 50-70% more.

Health insurance can be had for barely more than the cost of fuel I was using in my daily commute, which is $200/mo. Yes, I have to do my own taxes, and yes they'll be a bit more, but as a sole proprietor I can also deduct many expenses. It's pretty much a wash. I firmly believe people make a bigger deal out of this than it is, it's a fear thing.

But this is beside my point, I'm transitioning out from Windows dev, and it doesn't have to be some huge sacrifice like many make it out to be. I have a plethora of full-time work I can take in front of me if I wish, I decided the 1099 route makes more sense for me at this moment in time.

Re:Software Engineers Will Work One Day For English Majors by greghinch on Monday April 23, 2012 @11:22AM (#3879227)
As someone who left full time about 2 years ago to do 1099 work only, I recommend you definitely work on pushing your rate up as you go. Not only do you have to account for the extra costs, it's also likely you won't always be billing 40 hours a week. I've finally gotten my rate to a point where I feel alright if I only bill 20 hours of work a week. I am working a full week, balancing programming time with managing existing clients, connecting with potential new ones, and taking time to stay involved in open source projects which have been my best marketing strategy. Also account for the fact that all time off is unpaid. My hourly rate is now about twice what I was paid as a full time employee. Good luck!
Re:Software Engineers Will Work One Day For English Majors by brandall10 on Monday April 23, 2012 @12:13PM (#3879510)
Thank you. Those are great points.

Is it weird that I love doing this stuff so much, that the simple idea that I can go work anywhere means I can go on a 2 week road trip and work while doing that is vacation enough? Granted, me from 2 years from now might have a different take. But the fact that 'work' means going into a coffee shop, staying at home with my dogs on the couch, or going into a cool co-working space and collaborate with like-minded people... it's like my whole life will become this big vacation. Because I really love writing software, it's just exhilarating. 'Work' to me is having to slave through rush-hour, deal with water cooler talk, walk into a sea of cubes in a faceless corporation, spend hours upon hours in meetings that accomplish little, then put on my headphones and pretend I'm somewhere else. The work itself is what actually takes me away from that reality.

Re:Software Engineers Will Work One Day For English Majors by greghinch on Monday April 23, 2012 @01:04PM (#3879806)
Yep I'm right there with you, and a lot of those points are exactly why I left to do freelancing and enjoy it for the most part. I've definitely done "working trips", and I do work each day when it's best for me. That being said, the part I'm struggling with right now is how to take a real vacation. I mean like 2-3 weeks off, full disconnected. I have 3 clients I'm working with right now on an ongoing basis, and trying to find 3 weeks where I can break from all 3 (and have anything to work on when I get back) is next to impossible so far. But that's part of the challenge, and I've learned to allot time to figuring out strategies for running the business, both in drumming up work and making it a better experience for myself (hence I only end up billing 20-30 hours a week generally).
Re:Software Engineers Will Work One Day For English Majors by carguy1983 on Monday April 23, 2012 @11:34AM (#3879273)
The starting point for your contract rate should be the thousands number of your salary multiplied by 1.5

i.e., if you make $50k a year, charge $75/hr. If you make $100k/year, charge $150. How much do you think an associate attorney at a law firm that makes $150k per year is billed out at? CPA? Management consultant? All of these professionals are generally billed out at a median rate of nearly $200/hr. And the top end is astronomical, like $800/hr or more.

The hardest part about software consulting/contracting is learning to say a polite "fuck off" to the people not willing to pay your price. Everything else is easy. Making some money is the easy part. Earning respect is the difficult part.

"No less than 5 offers" - CHARGE MORE MONEY. As an engineer it is your responsibility to the craft to increase the prestige and respect of the job.

Re:Software Engineers Will Work One Day For English Majors by brandall10 on Monday April 23, 2012 @12:08PM (#3879475)
First and foremost, I named my price on this contract, which will be 27 hours per week average for the first 3 months, then option to renew for another 3 months. By your metric I should have asked almost 3x as much. But I'm not charging for a principal .NET guy, I'm charging for a jr. Rails dev. Put it another way, I'm probably at 1/3 the speed of a sr. Rails dev. There will be a day... so in a way, perhaps by this scale I took a huge pay cut against the risk. More than the $$, I get tremendous amount of value from this experience. It's my first paid 1099 (well not quite, but in this space it is). I get to work with a top-notch client and design firm, and I have a very sr. guy on retainer the client pays for for my use to help out on areas I get stuck and review all my code (FWIW, he is actually the one who introduced me to this client, we worked together on the prior project as well).

I also have another client who wants me to bid shorter term work (they did offer at a rate that's 40% higher) but I told them to hold off for now because I want to get used to the new contract first and make sure I'm comfortable with the cadence.

Key point - I will consistently be raising my rate, but for now I'm making almost as much as my day job and working much less hours, and I need to get out there network, get good, etc... and the rest will come. I'm approaching this in a way that aligns with my own principles. I'm not trying to be a bottom feeder in this market. I just am getting my feet wet with a minimal portfolio and simply happy to be in a position that I can make the transition into something I'd much rather be doing.

Re:Software Engineers Will Work One Day For English Majors by rapind on Monday April 23, 2012 @02:01PM (#3880104)
According to this rule I should be charging around $200 / hour. I would love to be able to do that, but I think your logic is flawed. I've found that multiplying by 1 or even less actually nets you more overall income after expenses (considering you get to expense some toys like that brand new macbook pro / air, ipad, etc.) for the year.

This is in Canada though, so I'm not taking the requirement to pay for your own medical insurance into consideration.

Re:Software Engineers Will Work One Day For English Majors by RobertLysik on Monday April 23, 2012 @12:23PM (#3879577)
Thanks for the inspiration...I was pumped after reading this since I find myself in roughly the same frame of mind. I'm in the process of wrapping up Hartl's tutorial and preparing to do my first Rails project. I am so happy to read about your excitement with the projects you're working on and your employment prospects. Congrats!
Re:Software Engineers Will Work One Day For English Majors by GFischer on Monday April 23, 2012 @11:26AM (#3879240)
Thank you for the advice :) . I'm already committed to a Master's (in Management of Technology), so I'm putting 80 hours a week already, but I'll probably tone it down and start on Ruby and Python and Javascript :)
Re:Software Engineers Will Work One Day For English Majors by spatten on Monday April 23, 2012 @12:42PM (#3879691)
This is going to sound more dramatic than it was, but here's one way of summarizing the last five years of my life:

I was 35, working at a great job as a physicist. Amazing team (I was usually the dumbest guy in the room), amazing project, but I was bored. I knew that if this didn't make me happy, I needed to get out. I read a few PG essays, caught the startup bug, and started coding in the evenings.

Within 8 months, with a brand-new daughter and another that was two, I was gone from that job, working on my own. In that 8 months I had taught myself web-dev from scratch.

I knew nothing of Ruby, HTML, CSS or JavaScript. I had a smattering of Unix knowledge and had been coding data-analysis in Python and C for a while, but the amount I had to learn was staggering. I bought tons of books, learned tons, and (luckily) had no idea how much I still had to learn.

The first startup idea (online graphing software for physicists -- I didn't exactly reach far for the idea) was a complete flop. That's okay, though. I turned to consulting for a while. Gave some talks. Wrote part of a book. Met my co-founder by consulting for him for a while.

Now, things are good. Leanpub is growing steadily, and I couldn't be happier.

The point is, that you can and should teach yourself some new skills. You're way closer to being employable than I was, that's for sure. It may take some evenings and weekends, but they'll be some of the most fun evening and weekends you ever have. Find something that you want to do and build it. Fall in love with the idea, but be ready to dump it for something better.

The market for people with even a smattering of Rails knowledge is huge. iPhone dev is bigger. or Erlang. or fancy JavaScript using Socket.IO.

Location doesn't matter. Age doesn't matter (I'm 40 now, in Vancouver, not in SV, and I bet I could find 10 jobs at the drop of a hat). My blog isn't huge. My startup hasn't had "an exit".

There are excuses, and there is getting out there and having a blast learning and making your life better.

Seems like an easy choice. Go kick some ass.

Re:Software Engineers Will Work One Day For English Majors by thoughtpalette on Monday April 23, 2012 @05:32PM (#3881086)
This. Always push yourself to learn.
Re:Software Engineers Will Work One Day For English Majors by jiggy2011 on Monday April 23, 2012 @10:27AM (#3878939)
To be fair far more programmers today (even new ones) will be familiar with .Net than they will be with Ruby (and complex JS probably).

I can see .Net sticking around for a while in one form or anther. Also AWS really isn't that complicated (at least from what I have used which is only really S3). Just think of it as another layer of abstraction around your Filesystem (FTP/Rsync with bells). You can figure S3 out in a few hours and I can't imagine EC2 being much more difficult if you're already familiar with Unix.

I think the crux of the problem here though is that you take a risk whenever you devote any significant time to learning a specific technology as to whether it will still be relevant in a few years.

This problem is made worse by the fact that often your employer will make that choice for you. Imagine being a young hire at your first coding job with ambitions of moving on to a career at Google after a couple of years to then be told that you are to be transferred to the COBOL/FORTRAN team where you will spend the next 2 years.

I think this is probably part of the reason that many developers are so keen to re-implement perfectly working systems in new languages. They will try and sell their boss on the benefits of technology XYZ and how it will be good for the business when really in the back of their mind they are thinking "I desperately want out of this job and XYZ would look great on my CV".

Re:Software Engineers Will Work One Day For English Majors by adrianhoward on Monday April 23, 2012 @12:36PM (#3879663)
So, rather than update themselves and make up all that lost ground from getting too comfortable, they'll try to keep in place the old legacy systems only they can maintain.

The flip side of that problem is dealing with the bright young things of all ages who thinks it'll be a couple of weeks work to rewrite that COBOL legacy app in in Clojure/MongoDB. Y'know - the one that's been correctly doing the interest payments for the last twenty years. How hard could it be?....

Guess what's not fixed one year and £200k later... :-)

Re:Software Engineers Will Work One Day For English Majors by GFischer on Monday April 23, 2012 @04:21PM (#3880751)
Heh, that Forte app I was talking about? Plenty of people thought it would be "easy" to replace parts of it... at least two projects failed, I succeeded replacing part of it with a .NET program (the data entry part). Every new manager thinks about replacing it, and then realize it's insane.

Now we're looking at buying a proven software package - even though its price will be in the millions of dollars, it's better than trying to build it ourselves (I estimated three million dollars for an in-house project, and a big chance of failure, most certainly not satisfying user's expectations).

Re:Software Engineers Will Work One Day For English Majors by lucisferre on Monday April 23, 2012 @10:50AM (#3879072)
I think you may be seeing a bit of a confirmation bias. Naturally with any group of people who stick it out in one company for a long time you are going to see "lifers". These people are complacent in there careers. They know they aren't getting fired and they are happy not going anywhere. As a result these people are not naturally life long learners either.

I wouldn't use 40 something developers in a large multinational as a representative sample. As the saying go, it's easy to retain average people, it's the exceptional people it's hard to keep around for long.

Also you mentioned .NET, the .NET ecosystem and culture is notoriously corporate, and not very innovative or leading edge, again that's not to say all of .NET is like that, but a large multinational is likely to fit that model pretty well.

Re:Software Engineers Will Work One Day For English Majors by chris_wot on Monday April 23, 2012 @11:27AM (#3879243)
I'm not really sure I can agree that .NET isn't leading edge. For instance, it's been implementing dynamic language support, LINQ, and ASP.NET MVC is no slouch either.

As a framework, I'd say that it's actually pretty advanced.

Re:Software Engineers Will Work One Day For English Majors by lucisferre on Monday April 23, 2012 @04:40PM (#3880865)
What I mean is that .NET as a culture and ecosystem is not full of people who embrace leading edge. Though, since you bring it up, as far as features it still isn't leading anything, just following reasonably close to a lot of others.
Re:Software Engineers Will Work One Day For English Majors by chris_wot on Monday April 23, 2012 @09:12PM (#3881923)
Again, I disagree. It is full of people who embrace the leading edge. Just look at the IronRuby early adopters, or the folks who embraced WCF and WPF. This seems like your perception of thingS, not reality.
Re:Software Engineers Will Work One Day For English Majors by lucisferre on Monday April 23, 2012 @11:14PM (#3882249)
A vast, vast minority of the whole are early adopters. How many .NET shops actually use IronRuby or even F#.

Besides, I'm not sure what's so leading edge about bringing Ruby to .NET. Ruby is 10 years old and Java has had an implementation for much longer. I also have no idea what is leading edge about WCF (or WPF for that matter) though I really like the work Glenn Block has done recently for WCF and much of it is arguably very cutting edge REST stuff, so there are certainly exceptions, but they are just that exceptions.

If you're point is that MS shops are quick to embrace MS christened technologies, well that is relatively speaking true. However MS is often well behind the technology curve of even the .NET open source community (monorail predates MVC significantly) and generally speaking even further behind the ecosystems outside of .NET.

Bottom line, I see no evidence to support a claim that .NET development supports a significant culture of early adopters.

Re:Software Engineers Will Work One Day For English Majors by chris_wot on Tuesday April 24, 2012 @12:27AM (#3882418)
That's OK, because I don't see any evidence to support a claim that .NET development does not support a significant culture of early adopters :-)

My point wasn't actually that Microsoft shops embrace Microsoft products quickly. You said that .NET doesn't have a vibrant ecosystem, but in the same breath mentioned that Monorail was implemented well before Microsoft created ASP.NET MVC. Ecosystem does not necessarily mean "vendor supplied", if anything a healthy software development ecosystem allows for alternative modules and frameworks. You have sort of proven my point :-)

As for IronRuby and F#, you seem to be asking a question to prove your point that very few people have adopted these technologies. For myself, I guess I'm not sure either - I would be curious to see if these technologies have been adopted by many .NET developers.

Also, you are contradicting yourself a little about the WCF technology. You can't say that there is no real cutting edge stuff being done, but then state that there is cutting edge work being done on REST, but that it's just an exception. "Cutting edge", by definition, is exceptional...

As to whether there are many early adopters: I guess we'll agree to disagree!

Re:Software Engineers Will Work One Day For English Majors by lucisferre on Tuesday April 24, 2012 @12:48AM (#3882473)
I'm contradicting nothing. Saying that .NET is largely a culture of old-school thinking, isn't the same is saying it's all that way. Relative to the overall software development community it has always been a good few steps behind and lacked in true support and adoption of open source culture and the benefits it brings. While more recently this has started to change for Microsoft, many have seen moves like Nuget as undermining open source through taking over fledgling projects rather than simply supporting them.

While the .NET open source eco-system is arguably decent, you've completely ignored two implied, but obvious points. The open source eco-systems outside of .NET are much, much stronger and people outside of .NET embrace open source, and leading edge far more easily.

That's really the whole argument and you've said nothing to contradict it, but feel free to ignore it. As a former contributor to Nancy and one of the rare .NET devs who's contributed a patch or two to almost every .NET project on Github I've used, I feel pretty comfortable making these observations.

Re:Software Engineers Will Work One Day For English Majors by chris_wot on Tuesday April 24, 2012 @01:52AM (#3882627)
Whoa, peace! I haven't ignored your points, only disagreed with them. I agree that the .NET open source ecosystems are probably not as "strong" as other frameworks, but this doesn't mean that they aren't doing interesting or leading edge things.

Agreed that people outside of .NET embrace open source more easily, but disagree that they don't embrace leading edge technologies. As an example, when LINQ was released, it was widely taken up.

Where I'm disagreeing with you was in your statement "the .NET ecosystem and culture is notoriously corporate, and not very innovative or leading edge". It may well be a framework loved by corporations ("notorious" is an emotive term with no substance), but you haven't proven to me that they don't innovate or that the ecosystem or culture is not leading edge. I appreciate you've committed to .NET projects, which is awesome, but argument through authority isn't really anything to disprove what I've said!

Sorry if you feel that I've ignored your points, but I raised LINQ as just one example, you dismissed Microsoft's embracement of dynamic languages in the framework and WPF and WCF aren't innovative apparently. Like I say, we can agree to disagree!

Edit: I've reread the thread, and I can see the bone of contention. My fault here: I talked merely about the leading edge technologies, whereas I was objecting more to the assertion that there was little or a minority of innovation. Of course, I didn't actually state that so the discussion went on a bit of a tangent. Sorry about that!

Re:Software Engineers Will Work One Day For English Majors by hkarthik on Monday April 23, 2012 @10:25AM (#3878934)
I was in a similar boat, and I decided to take the pay cut and spend a few years building my way back up.

I'm much happier this way than I ever would have been in a managerial role that I never wanted.

Re:Software Engineers Will Work One Day For English Majors by GFischer on Monday April 23, 2012 @11:28AM (#3879246)
Thank you :) . However, I think I could be happy in a managerial role.

As long as I'm solving problems, facing challenges and feeling relevant, I don't believe I need to be the one doing the coding :)

Re:Software Engineers Will Work One Day For English Majors by peterb on Monday April 23, 2012 @10:09AM (#3878855)
I prefer "It is hard to teach a new dog old tricks". Much of today's cruft was originally written by new dogs.
Re:Software Engineers Will Work One Day For English Majors by dalore on Monday April 23, 2012 @10:07AM (#3878843)
It's also easier to learn new technologies and languages since so many share the same concepts.

Also what's old is new again but just done in different mediums.

Re:Software Engineers Will Work One Day For English Majors by angstrom on Monday April 23, 2012 @10:11AM (#3878864)
Reminds me of a place I worked where we joked the company's technology was 180 degrees out of phase with whatever was the hot new thing. Looking at the code base you could see how it oscillated between what was hot or great at the time.