Exploitation?

CamiKaze

Honorary Master
Joined
May 19, 2010
Messages
14,947
Reaction score
1,475
Location
Aiur
Background:
So I work in a team that develops applications for point of sale devices. So we deal with a lot of embedded C. This is the team's core business and language.

I have been here for 2 years. Through the entirety of the 2 years, management thought that it would be wise to let me develop in .net languages, do some reporting and do some admin work...

I have a new manager that expects me to develop applications in C, for the POS device on the level of 2 years experience. That, plus everything in the second paragraph, plus sql, asp.net and jquery. I even have to do web apps that has got absolutely nothing to do with my team. Everything that i have done is for other teams, and in the 2 years, i only developed one application for the POS device...

Now i understand that they want me to learn and all that, but...this comes down to the cliche' of jack of all trades and master of none. I constantly have to play catch up with all the languages and i don't ever see myself specializing one day, as there is just too much on my plate with all these languages.

I have spoken to management about this and they told me that this is the life of a developer...all the developers in this building develop software in 1 or at most, 2 languages. Why must i do 5 languages at the same time? The market does not pay you for the number of languages that you know, they pay for a specialist.


Am i wrong or is this how it is supposed to be?

Very frustrated...and down.
 
I think specializing is overrated.

But, I will say, if you want to specialize, I think you need to make your needs known or go elsewhere. The reasons why your company hasnt let you specialize are probably that A) you are the only one in the team capable of doing .Net etc, or B) you are the only one in the team willing to do it. B) is probably more likely. They probably asked everyone on the team if they want to do those things, the more senior people, and they said no.

Is that the life of a developer? The life of a developer is that, because you work for someone else, they get to make the decisions on what you work in and what you do. The best developers are those that say, "I dont know how to do X but I can learn.", not "I've never done X so I cant do it."

I'm not saying that is you, I'm just saying, change your attitude regarding languages and technologies. They are tools, nothing more. You use one for a while and then you move on when it is not useful anymore.

Also put it this way - if you left, who would fill your shoes? Answer: they'd have to hire someone. This is a good place to be. Dont get bogged down by the fact you work in multiple languages, personally I think it is a strength, not a weakness.

But not everyone agrees, recruiters certainly dont. Recruiters would love to see that you have done embedded C and nothing but embedded C for the last 5 years. Unfortunately this is just not realistic in the case of most developers, and worse, could even be a disadvantage. I think I am a stronger developer for having worked with VB6, classic ASP, MySQl, Sql server 2000, 2005, 2008 and 2012, all versions of .net, MVc2-4, ASP.Net2-4, Ruby, Lua, C++, Java, Javascript and CSS, off the top of my head.

However, that being said, it is important that you remember you are in control of your career, and it must move in a direction that you want it to move. If you dont like working with .Net, then you need to do something. You need to be firm with management if thats what you wish, but be aware that for management, the business needs will and always should come first, which will probably mean that they need you for your .Net and web skills more than they need you for your embedded C skills.
 
\However, that being said, it is important that you remember you are in control of your career, and it must move in a direction that you want it to move. If you dont like working with .Net, then you need to do something. You need to be firm with management if thats what you wish, but be aware that for management, the business needs will and always should come first, which will probably mean that they need you for your .Net and web skills more than they need you for your embedded C skills.

Thanks, it makes a lot of sense. Senior developers don't want to do it, so they throwing embedded c, and all the rest of the languages, and amost of the admin work and reporting my way. and all of these things are done in parallel. The only free time that i have is this time to even post on myBB, simply because im stealing time in training, but i know after this, its back to multi tasking all the projects in all the languages with all the admin and reporting.
 
Flip I hate admin and reporting, I'd get the hell out of there!

If you stay there, make sure you get everything you can out of it, and by that, I mean apply yourself and work hard. Learn all that you can. Nothing looks worse than, I stayed at a dead end job for years and did/learned nothing. It sounds like you are proactive so you should be fine.
 
I just dont want to feel like, after 10 years, not live up to the level of 10 years experience.
 
Yeah, I hear you.

Personally though, I feel that level of seniority has less to do with what technology you use than it does what you use it for. If all you are doing is small scale stuff, then it doesnt matter whether you use embedded C for 10 years, you will not be senior. If you use .Net, but you use it in larger projects, you will gain more.

I think the most important skills that programmers should learn over time actually have little or nothing to do with technology. Things like design, maintenance, the business context, mapping requirements to functionality, problem solving, debugging, the strengths and weaknesses of different development approaches, etc etc. That has less to do with what technology you use, and more to do with what you use it for.

So, think to yourself, what is the significance of what you are doing in the business context? How big is each project you do? How long does it take you? Are more people involved? Do you have to gather requirements from users prior to writing the software? Is it all ad-hoc?
 
I created this account because of the specific knowledge I am about to impart on you. It is how I have perceived the market thus far. Probably some bragging in here, so be warned ;)

So I've got a bit more than 3 years experience. Most of it in one language but just like your current company I had to do many things that weren't my responsibility. My knowledge isn't very specialised and all of my employers thus far could easily replace me.

I have interviewed with many companies, some of the more popular companies Google.com, Amazon.com, Discovery, Absa, MWeb, many others. The reason I have gone for so many interviews wasn't money, it was just a set of very strange circumstances to do with my personal life, nothing work related or issues or such. I've changed work three times already. That is very bad btw, don't change jobs as often as I did.

So interviews: Some companies ask very specific questions, that require "specialised" knowledge.

Google and Amazon didn't ask any technology specific questions. You can read the type of questions they ask on Glassdoor, those are pretty accurate. I had to kill myself for those interview btw, they were $@% hard.

Of those companies I mentioned, I got offers from most. When I was "younger" I was very interested to see "what I could get". Highest offer I got was 40k p/m with about 2 years exp back then. Company offered it after asking me what offer they should make for me to stop interviews with Google. Stupid them because these tech companies actually give interviews quite easily, they need developers like everyone else. I didn't take their offer in the end, and looking back, thank God I didn't because it would have been a specialised dead end job.

In my interviews I got things wrong. Many things.
I don't really have "highly" specialised knowledge.
They weren't making me offers because no-one else could do what I can do.
I'm easily replaceable in every position I've ever been in. When I say easily I mean they would maybe take a few months but there are plenty of people out there.

A good software developer will have great breadth of knowledge, have very strong CS principles and over time develop in depth knowledge of at least a few high quality technologies in his/her life.

My CS knowledge is incredibly strong (see bit of bragging there). I know data structures, algorithms, concurrency, networking (esp. HTTP), security and software engineering to a high degree of depth.

This is something you can get with a degree but the best graduates don't always have the best CS principles.

Next up great breadth of knowledge. You get that by just generally being into computers and by taking the odd job at the office that no-one else wants. Like your situation. Generally just know some sh!@

Finally specialised knowledge in a few areas. This will be that big project you spend a lot of time on. Some technologies are more marketable than others. More marketable technologies are generally better to specialise in, .NET and Java are both hot right now and will be for some time. I happened to have started with a very marketable set of technologies but my depth knowledge is still incredibly lacking. Usually interviewers will remark on that with, you will learn a lot here and you are still very young.

Amazon and Google didn't give a crap about my specialised knowledge and didn't ever ask in depth questions into that area. They cared most about principles and a lot about breadth of knowledge. They'll specifically ask things you DON'T have great depth in, probe more and more until you don't know. That is the part where they decide if they hire you or not: What happens when you are backed into a corner and we poke you with a stick. How do you react when you don't have specific knowledge?

A good engineer is adaptable. They need to be able to break a problem down, even if they don't know, to try and solve it in a logical manner. Hell your solution may be the bubble sort of the world (sh%# in other words). But if you have to choose between "uuhh I don't know" and bubble sort then you take bubble sort every time.

If you want to end up in the silicon valley then worry about the above 3 the most. Principles you need to get right first, then great breadth with which great depth will come in time.

If you want to work for a company and become "indispensable", then specialise as quickly as you can and disregard what I've written. Just don't be surprised if you are easier to replace than you though or you find that you have trouble finding work because your knowledge is too specialised and the companies hiring for those positions, aren't hiring.

My 0.02
 
Last edited:
So i went to an interview yesterday and effing hell....I feel like I know nothing now when it comes to software development. So after I failed the interview, they told me that they had many developers coming from banks, looking for a job. And they noted that if you want to be good at what you do, start at a software development company. A bank gives you a small application to do over a long period of time and you don't learn much. There is no sharing of intellectual capital among colleagues. So now i feel like i wasted 3 years as a developer.

I fail to understand how the bank actually thinks that you have 3 years experience and very knowledgeable when all they do is give you an app to do and they don't really care what language it's in. So as i said, my team specializes in C, I have not written more than 100 lines of code for the years that I have been there, instead, I've been doing applications in C# for things that has got absolutely nothing to do with my team. There is no one for me to learn from either, everything is self taught, no training. So, when applying at a other company...damn...

I got a new project, it was written in ASP classic...and now I must do changes. do you think they care? They hear ASP and automatically think that it's ASP.Net so it MUST fall into my lap. WTF has this got to do with me learning to code in C for the device???

I'm basically junior to other companies, and Intermediate to my company. So yip, i wasted my time and i feel i need a career change to survive before my new manager expects me to know my stuff on the level or amount of years of experience that they think I have.

In short, what I am saying is that my lack of knowledge that is caused by my previous manager not exposing me to some stuff will become my current manager's problem.

And believe me, I have tried to learn more than what is on my plate.
 
Last edited:
I dunno why developers want to work for corporates. I just don't.

Get out and go work for a software house and learn how to code. All those banks etc. send their real projects to the dev houses/contractors. If you are any good you'll pick up quickly.

...and you don't have to wear a suit and tie.
 
I got in under the graduate prog. And only now I see that I made a mistake. So it's hard getting a job at a software house now 'cos they expect you to know things based on how long you were developing software...I need to start as junior again somewhere.
 
I got in under the graduate prog. And only now I see that I made a mistake. So it's hard getting a job at a software house now 'cos they expect you to know things based on how long you were developing software...I need to start as junior again somewhere.

Well first off no experience is a waste. You may or may not have gotten a bit of a slow start though. With two/three years experience you are still a bit of a junior anyway.

So go to an recruitment company like emerge, submit your CV, prepare for a possible tiny pay cut, land a job and within a year or two you are miles ahead of where you will be if you stay where you are (the way you make it sound does seem like you are wasting your time).
 
So i went to an interview yesterday and effing hell....I feel like I know nothing now when it comes to software development. So after I failed the interview, they told me that they had many developers coming from banks, looking for a job. And they noted that if you want to be good at what you do, start at a software development company. A bank gives you a small application to do over a long period of time and you don't learn much. There is no sharing of intellectual capital among colleagues. So now i feel like i wasted 3 years as a developer.

What type of questions did they ask? Perhaps a well chosen personal project can help you develop some of the right skills yourself?

Also, you will likely find that the type of work there is available varies a lot at both SW companies and banks/corporates. You can become isolated at either or find some pretty cool technical projects at either. Maybe (given that they view you as a mid-level dev) you can transfer internally to something that will bring more skill growth?
 
I dunno why developers want to work for corporates. I just don't.

Get out and go work for a software house and learn how to code. All those banks etc. send their real projects to the dev houses/contractors. If you are any good you'll pick up quickly.

...and you don't have to wear a suit and tie.

I have worked in both corporate and software houses. Your implication that corporate devs can't code is BS. It's a generalisation that may apply to your experience.

PS, never wore a suit and tie working at any corporate either. Not once. In SA or the UK.
 
I have worked in both corporate and software houses. Your implication that corporate devs can't code is BS. It's a generalisation that may apply to your experience.

PS, never wore a suit and tie working at any corporate either. Not once. In SA or the UK.

Yes, it is a generalisation. It's us against you. Our company vs your company. I say the same thing about people living in PTA.

It is all in good spirit :p



But you are better of working for a software house that specialises in software than in a department at a corporate. Beg to differ?
 
But you are better of working for a software house that specialises in software than in a department at a corporate. Beg to differ?

There are plenty of departments in corporates that do very interesting and very sophisticated software development. I'm in one now (and I wear jeans and a t-shirt to work). My previous job wasn't a software house either, but had close to 1500 software developers working on projects ranging from the mundane to beyond the cutting edge. I have been very well compensated by both, due to the fact that I have skills beyond just "pure SW".

I think that you will find that your assertion is a lot more (but far from always) true for junior dev's than senior dev's. E.g. Banks don't hire senior dev's with 20+ years experience or say 10+ years experience and graduate degrees to sit in a corner and write some isolated application (as Camikazee suggests), although Camikazee is correct that this could easily happen to a junior employee.
 
Top
Sign up to the MyBroadband newsletter
X