Ask HN: Afraid I've dug myself into a hole

34 points by hitokiri82 ↗ HN
Hello guys. This is my first time writing to HN so I'm not sure if I'm stepping out of line here in any way, sorry in advance if I am. I'm a Computer Engineer and right out of college I started working as a SAP Consultant (BW/BI in case you are familiar) and I have been doing that for the last 4 years. Now I want to change the course, I’m no longer satisfied by the work I do and by the SAP environment and would like to try something else, because after all, SAP is all I’ve known since college and I cannot say if that’s what I really want to do for the rest of my life. This is the point where I find that I might have digged myself into a hole because once I started looking around I realized that apparently all the technical skills I gained during this four years are only valuable in a SAP environment and that outside of that I have not gained anything that a non-SAP recruiter might be looking for. To complicate things even more, this particular hole I’m in seems to be particularly lucrative, and the SAP market is really huge with very good perspectives in the years to come, so that makes the whole "try something else" plan sound like a bit of a pipe dream. I’ve considered going back to college and get a Masters degree but I’m not sure if that’s gonna help me with my situation or if I'll end up worst than I am now. Now, my question to you is, do you think is possible for a person that has only worked in the SAP market in the last 4 years to find a technical job (developer, programmer, designer, etc) outside of the SAP world where every job description seems to require "3 to 5 years of experience with [C | C++ | Java | Ruby | Python | PHP ]"? I know that I’m a really good programmer/developer and I could be very productive in any of those languages, but any potential employer would have to take my word for it. What do you think, am I or am I not in a hole?

62 comments

[ 35.5 ms ] story [ 263 ms ] thread
Write something in one of those languages. If you can show people something you've done, you've pretty much got it made.
So you would say that the whole "3+ years of experience" is bogus, and whats really important is that you have something to show?
I (note: not the original commenter you are responding to) would say that "something to show" equals experience, but with more solid evidence. You could learn a lot and gain some experience and network and have fun just by participating in some open source project that interests you (or that uses some of the technologies that interest you). You can do that on the weekends or evenings while you keep your day job, it won't cost you anything, and in the worst case it is just good karma. ;-)
Remember that job ads don't sample the market for programmers evenly. People often complain that there are no ads asking for programmers with 0-6 months of experience. But that's not necessarily because those positions don't exist: It's because advertising for them is a no-win proposition. Think of it from the employer's perspective: If you put up such a job ad you will receive an absolute flood of responses, which you will not be able to screen accurately, because how the hell can you tell the difference between two programmers who have never worked in your field? It's hard enough to judge experienced programmers based on resumes and interviews alone.

So if you need someone with less than a boatload of experience (perhaps because the experienced ones are too expensive, or perhaps because you can't find them...) the most reliable method is word-of-mouth recommendation, also known as networking. You ask your friends and your friends' friends if they know any smart but disgruntled SAP programmers who need a better gig.

So, write some code and use it as a networking tool. If you write a sample app that works decently well and show it to a pro, that pro might put you on his list of people who have at least some clue and who might need a job, and eventually someone will ask him to do a project that he doesn't have time for and he will give them your name...

Advertising in general can be a no-win proposition. Posting ads for a 2-5 years of experience programming gig garners a similarly flood-like number of responses, and you get a near equal number of bad programmers. The key difference is now someone else has had to put up with them first.

There are worthwhile places to look though, anyway. Imagine yourself in the same position as a fresh college graduate, and imagine where they go looking. Past the obvious answer of asking friends, they visit career fairs and university career centers. Those or something analogous might work well for you, too.

As for garnering recommendations, I think they can be a very good source of leads. But, and I'm probably going to gain a lot of flak for saying this, I don't think they are a panacea. It'd be nice if people were impartial enough to only recommend colleagues they know are qualified and will work out well, and it would be equally nice if the people doing the recommending were clueful enough to know when someone isn't. Sadly, not everything is nice, and nepotism for social motives drives more of the recommending that I wish it did.

Thus, I and some of the people I know have developed a slightly thicker skin toward people recommended to us; a smile and thumbs up from someone the hiring manager knows isn't enough, and that not having that doesn't preclude your being considered. Who you know might help you get past human relations, but once you get to someone like me, what you know, and more importantly, what you can learn, really start to matter.

Oh, and mechanical_fish, I'm not trying to provoke you. Your two comments got me thinking the most of the one's I saw here, and so I decided to respond to them. :-)

mechanical_fish, I'm not trying to provoke you.

Your on-topic and thoughtful responses are so annoying! Why can't you write rude monosyllabic flames like everyone else on the web? ;)

But, seriously, I overstated my case a bit. I didn't mean to imply that networking is some kind of miracle solution to the hiring problem -- for either the employer or the employee. AFAIK there is no miracle solution to the hiring problem. We're all forced to play it by ear.

But because there is no one best practice for finding the right person for a given software job, people are using a bunch of different practices. Which is why you can't look at a single aspect of the job-search market (job ads posted to Monster.com; density of keywords on the resumes that are slid under your door; number of recruiter phone calls, whatever) and expect it to accurately represent the whole state of the field.

I'm looking for programmers familiar with enterprise software right now, so if someone could show me that they had made something impressive and related to what I'm looking for in any language, I'd be happy to give them some time to pick up PHP if they didn't know it already.

Feel free to e-mail jobs@thinkcomputer.com.

IMO & Experience I felt that the 3-5 years experience is a 'filter' for the recruiter to get less resumes and pick from them. I in fact sent my resumes fresh after college to a lot of companies that needed 5+ yrs of experience and they did contact me. So, I'd recommend create some simple projects in C++/Ruby/Python and put them in your Blog/Web so you can point it to them on your cover letter/resume.

Good Luck

there's a lot of languages and applications out there. you should spend your spare time researching and investigating.
Of course you can get a different job.

Pick a specific alternative technology and field, and learn that. If you go looking for "anything but SAP" of course you're not going to find it. That's spread too thin. And "I could be productive with any of those languages" is a very bad sales pitch. People don't want a generalist. They want to hire someone who will immediately get to work on their specific problem. Decide to become a Ruby web programmer, or a Java middleware programmer, or an Objective-C iPhone programmer, or (god help you) a C++ game programmer, and focus: Read the books, read the blogs, go to the user group meetings, build a practice site or practice app.

If you want to leverage your SAP experience as you seek another field, you could try sniffing around the edges of the SAP world. For example, there are surely lots and lots of web apps that are compelled to talk to SAP. If you know a little about web apps and a lot about SAP, a team might want to hire you.

The masters' degree might be good for creating a break on your resume, and perhaps for buying you a little time, and it will help you meet other programmers who have nothing to do with SAP. But you're probably right to worry that the degree itself won't help you. You probably need practice, and allies, and networking more than you need formal courses.

>And "I could be productive with any of those languages" is a very bad sales pitch. People don't want a generalist.

Which people? I'm not asking this to be provocative, but this one of those points where a lot of people seem to have strong opinions, both in blogs and off-line, and the sides seem pretty balanced in size. Even the advertisements seem split between very specialized work, and a company that just wants someone who is intelligent, for whatever internal value of intelligent they choose. The most notable characteristic I've seen for tending toward either side of wanting a specialist is the company's size.

My own thoughts on this are torn, but tend toward one of the sides.

On one hand, I can understand needing someone who is highly specialized in something simply because it takes so long to become highly specialized in it. Usually, this has much less to do with the language, though, and much more to do with the domain of the problem needing code to solve.

On the other hand, the claim that someone can hit the ground running if only they specialized in the particular language du jour is completely bogus. There is far more to understanding a system than understanding the language it was written in, and learning whatever technology they based the system on will disappear into the noise compared to trying to understand what they wrote on top of it if the system is of any size.

I can imagine that, in a lot of cases, a generalist would be able to get up to speed nearly as fast as a specialist. More importantly, they would be able to adapt to inevitable change far better than a specialist; the one thing that they perhaps specialize in is learning and drawing parallels. I think this skill is way undervalued in most development teams when hiring.

And all this specialization goes out the window when the system gets iterated to a new platform, and they fire the specialists, hire on an entire new set, and then become stunned again when these new people don't come in able to be maximally productive on the first day. I don't know that I'd want to work for someone who wants to hire people this way.

You'll forgive me for pontificating for a second here, but usually when I see the call for "specialize, specialize," it is from someone who is looking themselves to find a very small niche, negotiate a massive salary based on their specialized knowledge, and live the good life once they have cashed out their knowledge capital in a few years. I'm not implying that the parent commenter holds this philosophy, but I've never seen this work. Either the niche vanishes or becomes less relevant, or they get thrown to the curb when the company "re-specializes" the IT group.

Interview situation: "What do you want to do/what are you passionate about? What motivated you to apply to this job?"

"It's not SAP, and I don't like doing SAP, so I was very happy to apply for any non-SAP job."

Fail. (Keep reading please; there's some non-LOLcats level of discussion below)

This is an industry where lots of non-traditional backgrounds can succeed. (My degree is in mechanical engineering; I haven't made enough from working as a Mech E to buy a cup of coffee.) I've worked with or currently have people on my team with non-technical degrees, college dropouts, and one that never finished high school.

Assuming OP wants to code, the solution is not going back to school, but rather finding a job as a not-quite entry level non-SAP coder. But I know what we pay our SAP consultants, and in this economy, you're looking at a steep decline in take-home to go from 3-4 years SAP experience to entry-level coder in Foo language. That may very well be the more significant hurdle, esp if you've built a life around a relatively high level of income.

In sharp agreement with azanar though, I think the best people I've worked with are generalists over time and specialists in the moment. I've had the luxury of working with a great team that's been (with additions and deletions to the group, and mergers/acquisitions/voluntary move to new startups) working a 4 different companies over the span of 12 years. Along the way, we've gone from Tcl and C++ on Solaris, through C++/COM/COM+/DCOM using DB2 and mainframe DBs, and now to an all MSFT .Net/MS-SQL (with a little MySQL at the edges) platform. None of us have had substantial issues moving from one platform to the next, so in that sense you could say we're generalists. But in each position, we spend 3-5 years deeply specializing and getting to know all the corners of the platform.

Our sales pitch applying to the current place back in 2003 wasn't "We hate our current gig consulting and we're only here because Merrill Lynch has clicked on golden handcuffs that just unlocked. They want us to stay, we can't imagine having our souls crushed one more day, so please get us out!" All of that was true, but the focus wasn't on what CurrentCo could do for us, it was about what we could do for CurrentCo. 6 years later (with an IPO along the way), both sides are very happy about the situation!

I think the best people I've worked with are generalists over time and specialists in the moment.

Precisely, and very well worded.

Being a generalist is a great strategy, but not a great job-search tactic. Hiring managers would like to hire someone who will be a generalist over time, but they need someone who is able and willing to solve the specific problem that's bothering them this year.

...usually when I see the call for "specialize, specialize," it is from someone who is looking themselves to find a very small niche...

Hee hee! This is me: http://www.michaelfbooth.com

Needless to say I'm kind of a generalist. A little bit too much of one, perhaps, but that's what the shopping phase of one's career is for. And I agree with everything you say. I advocate specialization as a job-search tactic, not as a way of life...

(comment deleted)
Over the last 4 years you've gained more than SAP-specific knowledge. You've developed a process, or methodology, for solving problems. This is very important, and smart employers will recognize it.

Also, use your spare time to code in one of those languages so you have something to show employers. I would suggest a more advanced language, such as Scala, because Java, C# and Python are all essentially subsets of Scala.

For what it's worth, I had pigeonholed myself into PHP/MySQL development and was getting sick of it. So I applied for a summer internship with a financial company and got to work on some much more interesting stuff. Of course, I was still in college, so your mileage may vary, but what I'm trying to say is that if you want to change courses just start applying.

I don't quite agree on the first statement. I've known programmers who have been working with COBOL for the past 15-20 years. And they're good at it. Except that it seems that they've been living in a cave for the past 15-20 years and know nothing about current programming paradigms or technology and definitely not languages. So yeah, those people have pretty much placed coded themselves into a hole.

Of course, they might be good COBOL programmers, but that doesn't mean that they're good programmers. In my opinion, a good programmer would always be trying to enrich his knowledge by working on different ideas, different technology no matter what his day job is.

job security :)
A perverse point: Not learning other languages might contribute to job security if you are a COBOL programmer. Because if you'd learn another languague you could not bear going back to COBOL.
I would suggest a more advanced language, such as Scala, because Java, C# and Python are all essentially subsets of Scala.

Python ⊄ Scala IMHO

Technically speaking, Scala is also a subset of Java, C# and Python. It may be easier to use in some ways, or have a different methodology, but still fundamentally the same.
Also, having some kind of certification like Sun's Certified Java Programmer/Developer thing can be useful

IMO, you should write something cool and then apply for some jobs and if nothing works out then just wait a while, write something else, then apply again

Ow, and you are definitely not in a hole, SAP is an awesome company. If you're bored with what you do now ask for a transfer to a different department.

I am looking for someone to help me build a web app. I think it may be possible to do by building or extending a module for Drupal. If you are interested I would share my concept and you can see if it is appealing to you. This way you can gain some experience and maybe we can create something great. :)
I wonder why this was down-voted so much..
lol, tell me about it, I was just offering to partner up, he helps me build an app from which we could potentially both benefit and he gets the experience he is looking for along the way.
Perhaps people interpreted your post like you would only contribute the idea?
maybe, I can program. more front end than back, but realistically I can't completely do any of my ideas n my own :(
Ideas without implementation aren't held in high regard around here. Pick a toy project and learn..
Why does the employer have to take your word for it? Why don't you write something in the language/technology that you want to work with and post it up on your website...or contribute to an open source project that uses it...etc

The point is, code speaks louder than words. And your project doesn't haven't to be anything fancy or big, just something that you might need. A blog engine, an rss reader, a utility to do foo. Anything that shows that you can solve problems in this new environment as well as you can in a SAP based one.

I think the best advice so far is in fact to learn other tools in your spare time and work on some open source and personal projects so you have something to show. Start a blog to describe your experiences. Send a potential employer to look at your blog and projects and they will see someone who (hopefully) communicates clearly and codes well and thus will want to hire you.
I don't know much about SAP. All I've heard is that it's a beast big corporations seem to seek out and battle with varying results. However I'm guessing there are likely places where a little Python or Ruby program could have made a positive difference in an SAP implementation.

Is there any way you can find the opportunity to do some non-SAP programming that would make an SAP system work better? If so, then I would start there because that would allow you to build on what you've already learned.

Simple, been there before. I call it the "Four Step" career turn. - First pick a language you like, that could land you the kind of job you want and STICK to it. - Second, practice, write a few complete apps - Try to get any type of "paid" work that involved coding in that particular language... I recommend consulting...freelance. - Now you have a credible portfolio, finding a pretty serious Software engineering position in ur desired domain should no longer be a problem.

The whole process should take about year or less. And no you're not in a hole. If you know ur stuff u'll get noticed. Besides an addition to ur new knowledge u'll have 4 year of SAP ...nothing to sneeze at. For some companies that may just be the perfect mix. Personal bias (I recomend PHP)

From an employer's point of view, they don't like to take risks where hiring is concerned. Your wages are a sizable cost. That's why most would require you to work in a similar environment before they would hire you. Not many would want to spend $$ to train or risk hiring a lemon.

So going by reverse psychology, the best way to convince your future employers is to build projects similar to what the position entails. If you're looking for Java jobs, build something(substantial) in Java. It tells them 'Hey, this guy has done it before. He probably can do it"

This begs the question: why is SAP work so grossly overpaid (at least over here in Germany)? Doesn't look particularly exciting or challenging to me. Most of the implementations I've seen are of the 'meh' type: buggy, boring, bloated. I'm a bit biased though since a colleague of mine ran away screaming from a highly-paid SAP job. 'Never again', he said.
Big market, big projects, small amount of qualified people, people who don't yet realize how dumb is it to run your business on something you need to pay a single vendor to maintain (ie, most people).
To be fair, their main concern isn't the "single vendor" (SAP) but the wide deployment of available (if pricey) consultants to maintain it. They're paying extra but they're buying peace of mind. Not saying it's the right move, but still important to understand (without necessarily agreeing) what makes a market such as this (or any other) tick.
This is where startups will be strong next year.

The focus of the last couple of years - especially YC type startups - has been on social - which is pretty much saturated now (I laughed/cried at some of the content on that dreamitventures site that was posted yesterday).

We're in a recession now that means big opportunity for replacing established business software apps - because existing apps have grown bloated and carry huge costs - which gives a massive attack surface - a startup can do take an existing app and do the key features better, cheaper and simpler - and instantly bite in to some revenue.

New startups need to be taking on salesforce.com not trying to be the next Facebook or Twitter.

2010 will be all about revenue not unique visitors.

We have to wait another YEAR? :(
Use that year to get a jump start on everyone else?
I dont know, I have worked in some very big clients and I just dont see them trading their ERP's for some startup product, they just have too much riding on it, without counting the HUGE piles of money they've already invested in the SAP solutions. Its like the mob, once you're in you're in and the cost of getting out would be really steep. On the other hand, and this probably was what you were actually going for, startups could provide an alternative to those very expensive solutions and could very well tap into a huge pile of money thats sitting there waiting to be picked. One corporate client can generate more revenue than 100 freeloading "social users".
(Disclaimer: I should be more knowledgeable about this, having interned at SAP once.)

Perhaps you can do to SAP what Scala, Clojure et al are doing to Java: Present a more enjoyable front-end to the programmer, but target the underlying system.

I think you've answered your question :) None wants to do it, so the companies have to pay a lot of money.

Now, you might ask, none wants to be the garbage man, and their salay is crap. But it's a low barrier job to entry, and its employer doesn't have a lot of money, plus there's no specialization or the applicants don't can't receive better job offers elsewhere.

On a related note, COBOL programmers are well paid these days, but none wants to program in COBOL anymore. Kinda the same situation.

Garbage men are actually paid extremely well in the United States.

I don't know a single developer in my area who makes as much money as a garbage man does with overtime.

One of the guys that trimmed my maple tree this fall used to be a garbage man, and he said the hours were terrible and the pay wasn't very good.

This surprised me because I also thought garbage men made pretty good money. We do have competing trash services here, perhaps that makes a difference.

Just a data point.

Try to move across from BW/BI to Enterprise Portal-type work, anything on the Netweaver side will bring you closer to Java, PHP and Ruby etc. From there you'll find it easier to migrate into a generic dev role.

I got very heavily into SAP security a while back and I understand your situation completely. Your alternative would be to take the Database route, but then you're just swapping one hole for another.

Here are a couple of ideas:

* Like other people said, start doing some projects in interesting languages. Preferably, they should be open source projects so that you can get feedback about what you're doing, and meet other people.

* If you want to do something that's not too far from SAP, is open source, and could use some good hackers, OFBiz is an interesting project: http://ofbiz.apache.org/

This reminds me of something one of my professors wrote about: "Don't get good at something you hate because then people will pay you a lot of money to do it and you'll never be able to stop".

Lots of good advice on this board. I love Hacker News.

Great advice!
Hitokiri82 needs to take a more quantitative approach to accouning than simply saying "a lot of money". For example, there is something of a trade-off in consultancy that you can get more money for more esoteric skills, but you will get fewer billable hours per year. If a narrow speciallity pays twice as well, but you only get half the work, you will not be taking home any more money, and that extra spare time? You might need more than 100% of it to prepare for when the speciality narrows to nothing.

Hitokiri's key problem is to settle on his accounting treatment of his Plan B. At some point in the future the SAP gig will turn sour. Perhaps in five years, perhaps Hitokiri will need two years money in the bank to maintain his standard of living while he rebuilds his career. If that is the assessment, then Hitokiri has to save 40% less inventment returns. That makes it look a lot less lucrative.

The key point is that the extra pay has to cover both Plan B and compensate for any special unpleasantness in the work. You have to be very careful to avoid double counting the extra salary.

I don't think you're in a hole. You've got a high-paying job and four more years of experience (in a field you dislike) than all of the folks coming out of college.

The point is that if a kid coming out of college can get a job writing Python or whatever, you can too. You even get a salary while you look for the job!

In a sense, whether you're in a hole is relative. Compared to [Torvalds, Gates, Jobs, name your hero], we're all in a hole.

Hack on an open source project. Get your work out there for people to see and link it on your resume (Direct links to a web-VCS/SCM or something like Ohloh or CIA.vc).

Employers like seeing things like this, its verifiable that you did what you said you did on your resume.

My analysis is that you should probably do this stuff in your spare time while continuing to work your current field as its still lucrative and the economy isn't that great. I'd wait a while before making the transition as it would be advantageous to have some body of work to show for it :).

SAP is dead. Listen to this debate between Saleforce CEO Mark Benioff and SAP's Chairman Hasso Plattner. Benioff totally destroys SAP for an hour.

http://blogs.zdnet.com/BTL/?p=8481

Your best bet is to save up a /lot/ of money, enough for a year or two, then quit and start working in your own time on another project in another language.

Enterprises are moving away from big bulky ERP systems like SAP in droves. They are too expensive, they take too long to implement, they are impossible to maintain without a full time staff of outside consultants who don't care about your business, but do care about charging you more money.

I've known many SAP consultants and every one of them hates everything about their job except the money.

Why are you wasting your life away doing that crappy stuff? It's terrible.

There are great companies out there right now who need people who understand how crappy SAP and other products like them are. They want to build better software. Find one of those companies and go work for them.

Tell them you are trying to get away from SAP and you know how bad it is and you can help them make a product better than SAP for less money and that is actually /good/ software.

Your life will thank you for it.

> Enterprises are moving away from big bulky ERP systems like SAP in droves.

Even SAP is moving away from those. Last time I checked 'Software as a Service' was all the rage at SAP.

You're in a rut, but not a hole. You'll be okay! :-)

First step... start looking for a new job! Second step, look for jobs that require SAP experience, but at employers that will give you room to grow as a developer beyond a strict SAP admin/dev role. (For what's it's worth, I think Lego is an SAP shop. :-)

I was in a similar spot about 8 years ago when I was a consultant at PeopleSoft. (It, too, was my first job out of college.) I got to a point 2 years in where I wanted to work a bit more "closer to the metal" with web development tools and -- like you -- I felt that only knowing PS technologies was a bit too "sharecropper" for me. I made the switch away from PS by going "in house" and becoming a PeopleSoft admin at a software development house in Chicago. (It should be easy enough for you to find SAP customers in the city you want to live in.) At my new employer, over time I took on more projects and roles (in addition to using my PS skills), until I officially could "let go" of my PS role and do custom software development full time. I was able to then develop "pure" Python and JavaScript dev skills in my new role and I've been having fun every since -- including a tour of duty at Google and cofounding my own startup last summer.

I too was a SAP consultant! Yeah it sux big time. I saved my money, got a biz started in my spare time and jumped ship when I had a nest egg and the beginnings of a business. I'm not a millionaire ... yet. But Much HAPPIER!

The economy is not looking good right now. So I suggest hanging in there and saving as much as you can. You might even get retrenched and get some severence money to top up your savings.

Of course, if you're happy with you big spender lifestyle, then that the Faustian Deal you've made.

God Bless!

I found myself in a similar "hole" -- QA in my case (not to disparage QA; it just wasn't my optimal choice) -- and eventually managed to get out of it via a lateral move. I was lucky to be in a flexible enough organization and to have enough programming experience to make it possible.
Wow!. I just want to say I'm completely amazed by the quality of the answers and the discussion that my post generated. I'm not gonna be able to check back until tomorrow night (another big part of the crappines of my job, heavily restricted Internet access).Thanks a lot to everyone for the time they have taken to participate.
I saw myself pretty much in the same hole as you do now. I worked for a couple of years as an SAP developer but then got bored with the ABAP stuff. Luckily, I had the chance to do a lateral move within the same company and coded in Java from then on. Finally, I left the whole SAP field and now develop industry automation applications for a mid-range company (another hole, but that's a different story.)

What I want to say is, yes, you can get out of that hole. Of course, you will come across recruiters who will label you as the SAP guy. But there are others out there who know that there's more to it than just the programming language. So take the advice given in all the comments here, create something in your favorite technology and apply for the jobs that really interest you.