It’s no secret that people in the IT and software engineering fields are in high demand. We’re willing to take a nebulous idea and transform it into something concrete, as well as interface with our client to add new features. It’s no easy task, but we must be incredibly skilled in order to ensure that the general ideas of our clients become specific features in our applications.
As a beginning developer, the most powerful languages you can learn are C, C++, PHP, Java, and VB.NET (I know this one is a pain-in-the-ass but it ties into ASP.NET nicely for web applications). If you can get yourself squared-away with IIS (Internet Information Services by Microsoft) or Apache Web Server you’re pretty much all set when it comes to web technologies. In addition, PHP can pair nicely with Apache and VB.NET/ASP.NET can pair nicely with IIS.
As a developer myself I know the technologies enough to realize when someone has a decent skillset outside of what they specify on their resume. As both a hiring individual and one who performs the work myself, I have a unique perspective on the kinds of abilities that are required in order to succeed.
What’s the best route to go for web developers?
When I’m hiring for web developers I tend to look for people who are familiar with four components of the LAMP stack. The break-down is as follows:
- L: Linux
- A: Apache Web Server (httpd)
- M: MySQL
- P: PHP or Perl (preferably PHP, though)
I generally tell the new developers to learn PHP and how it can interface with MySQL as a beginning step. This kind of relationship comprises the majority of the web applications that a programmer will write and it’s a good idea to learn how these things interact at the database-connector interface level. You’ll probably never use it at that point but you’ll understand why things work the way they do.
I generally give bonus points for knowing PHP frameworks such as Laravel, CakePHP, or CodeIgniter since it shows experience with industry standards.
What’s the best route to go for application developers?
When I’m hiring for application developers I tend to look for a proven skillset with desktop and server-side applications. These can usually be broken down into the following:
- C, C++, or Java (some kind of application-specific language)
- Ability to tie-in to a database connection (JDBC through Java, for example)
- Understanding of how client-server applications communicate through a socket interface
- Creation of user interfaces
- Existing framework knowledge (possibly wxWidgets for C and C++, Spring Framework for Java)
- If you’re into building games you can get into the LWJGL (Lightweight Java Game Library) for Java
I’m a bit harder on desktop application developers than I am on web developers since there are more things they need to take into account to be sure they don’t completely destroy the end-user’s system. With Java this isn’t such a problem, but C and C++ will allow you to write to any memory address you specify, so you have to take special care to ensure you don’t screw-up something unintentionally.
My proof here is anecdotal. Many years ago I was working on a C++ program and I accidentally wrote to the wrong memory address in my application. Oddly, that address corresponded to something my video card had reserved for its usage. My computer tower began to emit smoke and my monitor blacked-out. C and C++ offer zero memory protection, whereas Java will attempt to prevent you from doing something that boneheaded. Make sure you learn Java first to get the mechanics and style of the language before moving on to languages that can actually damage your system if you make a critical mistake.
Experience over Education
The single thing that completely blows my boss’s mind and generally gets me into some degree of trouble with Human Resources regarding job candidates is my strict adherence to the notion of “A college degree is meaningless.”
In the eyes of most hiring committees, a degree is the equivalent of feasting on ambrosia and sitting next to Zeus on Mount Olympus. In tech and especially software development we take a significantly different stance: proven experience doing what we need is much better than merely knowing about it or practicing it at an academic level. This isn’t the case for all committees, mind you, but anyone worth their salt who hires developers will take the same approach. Why? We want to make sure the work can be performed; merely sitting in a classroom for four or five years listening to some professor drone on about systems that haven’t been relevant for the last twenty years doesn’t tell us anything about your ability.
I’d gladly hire someone with only a high school education who has years of development experience related to what I need over a recent graduate from Harvard or MIT whose only work shown on his resume is some bullshit internship or a minimum-wage job at Starbucks. I was actually working as a developer while I was going to college and had already amassed years of experience even before then because I took initiative and wanted to learn.
Admittedly, though, some places require that Bachelor’s of Science piece of paper that doesn’t say anything about your qualifications. If you find yourself wanting to get both a theoretical and practical knowledge about software engineering at the same time, your best bet is to find a college that offers a Bachelor’s of Science in either Informatics or Software Engineering. Learn on your own and expand outside of your classes too, since what you’ll learn in class barely scratches the surface of what you’ll be asked to make in the “real world” of programming.
You’ll want to stay away from a Computer Science degree, oddly enough, since it strays too far from the coding side and goes very in-depth on the hardware, operating system mechanics, and generally how a computer works. I know I don’t care about logic gates or the op-codes for an IA-32 chipset and neither should you. You shouldn’t have to worry about any of that since it won’t matter to you (or your boss) when you’re coding.
Visiting a place like Fry’s Electronics a few times a month is a good way to find new books and stay current with your development skills. Technology is an ever-changing field and you’ll want to stay as close to the curve as possible. The best place to keep up-to-date is in the books section at Fry’s; go through their books (especially the “Black Book,” “Bible,” or “For Dummies” series) and see what interests you. It’s considerably easier to figure out what catches your eye here than it is when you’re struggling to think of search terms on Google. If you don’t feel like buying a book and having a hard copy, then just note what the subject matter is and go find it on the Internet later.
Getting Hired
This is of course the most difficult part of breaking into this field. When you’re just starting-out you’ll need to focus on cultivating your skills and creating small applications that demonstrate basic knowledge of your chosen language. Once you’re confident in creating small applications you can move on to intermediate applications like basic games. Finally, you can move on to advanced and large-scale applications that may utilize databases, client-server communications, web services, and the like.
Once you hit the end of your intermediate level and possibly the beginning of your advanced level you can choose to start looking for freelance work, since your skills may not yet be good enough for full-time employment utilizing that technology. Freelance work is the next-best thing to full-time employment based on how it pays; you can also usually get away with a lot of screw-ups too. In addition, you can place these projects on your resume to demonstrate proven experience with what you know.
Finally, the best part is that you are more than welcome to drop a project and pursue other clients if you are having too much trouble or your client has been getting on your last nerve regularly; you can’t generally do that with a full-time job since it would reflect negatively on an entire company. With freelance development it happens all the time; just make sure you part ways professionally and move on to the next project.
If you decide to go the full-time employment route one of the best things you can tell a hiring committee is that you’re a quick learner. The next-best thing you can tell such a committee is that you can read formal documentation and API specifications. Of course, you shouldn’t say either of these things if they aren’t true (we can figure this out very quickly on-the-job) but these two abilities are highly sought-after in a budding developer.
The third-best skill in your repertoire should be your ability to talk to a client directly and figure out how to translate what he says into a formal specification for a system. The reason I mentioned Informatics and Software Engineering as desired degrees (if you choose to go that route) is that you gain an ability to do so implicitly during your time in the programs.
Taken in conjunction with your abilities as a programmer, the three aforementioned skills will absolutely set you ahead of most other candidates. The stereotype of the programmer with no personality is absolutely true; instead, be the guy I feel like I can go have a beer with after work.
Hawk’s Typical Day
After grabbing my morning coffee and flirting with the manager at the coffee place near my office I’m up at my desk checking my email. The other developer and I shoot the shit for a little bit as we settle in for our day. I answer a few emails from my clients and my boss, and then I’m off working on my latest project through my development environment.
I can’t stress this enough: don’t be the guy without a personality. Nobody likes having to put up with you during the day and you’ll be seen as the kind of person who can’t talk to anyone because “he’s just a programmer.” You have to make sure you jell with the rest of the team; once you’re in the team environment your personality is almost as important as your skills. You don’t have to be the clown of the office but at least make sure you can carry on a conversation while making eye-contact.
Throughout the day I meet with my clients, tell a few jokes with them (this helps inspire confidence and lets them see me as a regular guy instead of “that boring programmer”), and get their new specifications as the project gains momentum. Most of my day is spent writing code, but I’ve also made a group of non-technical friends at the office. We often have lunch together in order to relax for an hour and see each other as regular people.
Conclusion
The IT field centered around Software Engineering will always need people to fill the demands of its clients. The reward of being in such a field involves the satisfaction of knowing you took a difficult project from start to completion. In addition, you’re looking at a potentially large paycheck since writing code isn’t an easy thing to do; once you learn it, your potential to be in-demand by major companies skyrockets.
Read More: Now You Need Game To Get A Job
“…and had already amassed years of experience even before then because I took initiative and wanted to learn.”
Top advice and a great article. Idiots today think they deserve a job because they managed to stay half-awake for a few years at some shit school. I’m involved with professional legal groups in town and talk to fresh out of school kids all the time. They all want to know tips for getting a job. When I tell them “Work – research, write and publish above and beyond your current job, in areas that you want to work.” most of their faces go blank. It’s like they were expecting something simple like “wear a blue suit and smile.” Most just end up being mediocre at a state job leaching off the tax teat.
(1) Get a state IT job
(2) Learn their systems inside and out
(3) Resign
(4) Get hired back on as a consultant at twice the salary
(5) Profit!
Until you’re outsourced….
Or fired so they can meet their diversity quota of 50% female employees whether they are qualified/skilled or not.
Tried it in college, it’s rough! Plus, enjoy competing with foreigners for jobs after you graduate
The first 10 years of my career were as a developer, primarily Java applications and server-side programming for web applications. I’ve never regretted starting there, as the author notes experience and ability were vastly more important than degree (my BA was Economics not CS) and it’s a generally transportable skillset that can help you understand business processes as well as the technical side.
That said, I think new entrants need to realize that “programming” is largely a commodity skill. I hire programmers by the dozen now, largely out of India. Indian programmers are highly skilled, will work absurd hours (while only billing for 8), and work in massive shops where they will leverage expertise from the other people around them when they have a knowledge gap, usually without even telling you. I pay these guys about $20/hr and bill clients $30/hr for them so that they can abate the cost of a local developer who can cost $75-$125/hr for a comparable skillset.
Outsourcing this way is still only ~30% of the market, but it’s been growing throughout my career. It doesn’t work well in startup environments where you need direct interface between developer and business owner, so if you have ideas or have a funded partner who does then you can still shoot for the brass rings, but I have to caution anyone starting a career as a developer in the West that you need to have an exit plan before you hit the top of the earnings curve in software development.
Outsourcing is a disaster! Yes you can get this done for cheap, but you are locking out your own people from the workplace. The free market will be the death of the west, mark my words.
I don’t believe you, basically. The global arbitrage thing is pretty well played out as far as writing code. An entry level developer who can produce quality software that actually works will make not much less than the US wage of ~$70K. There really isn’t software work worth doing that can be done for $30 per hour. Maybe some trivial documentation type tasks and testing. The only way you’re pulling off what you claim is by scamming gullible clients and never actually delivering stuff that works, or blowing estimates.
Anything beyond very simple self contained “shovel some text and numbers around” type applications costs well over $100 per hour regardless of where you source the labor from. Add in the slightest bit of complexity such as GIS or scalability requirements and rates are much higher.
You’re welcome to your opinion I suppose. I will agree that pure-play outsourcing isn’t the preferred operating model any more. I primarily sell and manage blended onshore/offshore teams, and yes 80% of the solution architects will be Western based, even if on an H1 visa.
You are vastly underestimating the quality of offshore developers however. Realize that with a 1 billion population, the top 20% of their workforce equals our entire population. Their smart people aren’t smarter than ours, but there are a shit-ton more of them, and they’ve all been put through grueling training and weeding out as part of their government funded education system. Do any quick search on LinkedIn, and you’ll see what the makeup of Java skills on the market is.
Can an onshore American dev make $70k, sure. That’s better than Starbucks, but not any better than Accounting. I thought we were talking about high end professional careers.
The pool of talent in India is smaller despite the population size. Average IQ is over a standard deviation lower but software development requires 120 or so. The smart and skilled Indians already have jobs making wages comparable to Americans. There simply is not a huge reservoir of untapped high skill labor out there. There are a lot of idiots trying and failing to make their copy-pasted code work for their scammy outsourcing outfits, though.
An *entry level* software developer can expect between $70 and $125K. A few years of skill and experience bump that up another $20K. Most smart people don’t stay as just vanilla developers and after eight years have accumulated domain expertise. They know an industry or some niche problem domains inside out, or have hybridized into a sales role. Well over $165K and far beyond are very reasonably achievable. It’s a solid white collar career path.
They may have a poplation of 1bn, but most of that is poor and rural people without access to education – heck, without access to a computer. There may very well be 10 million Indians who *could* be great programmers. They invented the zero, after all. But it doesn’t matter if they are going to be stuck on a farm their entire lives.
I was talking with some programmer buddies recently and they said companies are asking to see their Github submissions as examples of their work.
Ah, the same old excuses for why an American shouldn’t be a developer. Suit yourself. The reason there’s so many foreign software developers is because Americans are too lazy to do the actually work, so companies must IMPORT “talent” from the other side of the planet, and I use the word “talent” loosely here because lots of these people are terrible programmers. People are so worried about being outsourced, but if that was the case Indians and Asians wouldn’t be MOVING to the USA to do the work, where they can make major $$$ once the money is exchanged to their home currency.
Hey HawkWrites,
Thanks for the practically useful post. I think RoK would a lot less balanced if not for posts and topics like this.
I have a question.
Does the age of your applicant play a big role in the hiring process?
Is there opportunity for coders who want to begin for example at age 28? What do you think is the age cut-off where it becomes too difficult to get the field from scratch?
Hey Clark, as someone who hires programmers figure I would share my advice. 28 is certainly young enough to change professions and pick up the career, I wouldn’t worry about that. A lot of times one of the challenges I would have putting someone inexperienced in a role would be if they are too young to present themselves well to the client. For an onshore developer, being able to present and communicate well with a client is crucial and most of the struggles I’ve had with 20ish developers have been related to maturity.
Also, depending on what you’ve been doing you may have experience that could be useful in specific contexts. If you’ve even been working in a call center or something; we do a lot of call center development work (workflow, reporting, etc.). In a lot of cases, knowing how an environment operates can be a huge value-add for a developer who may be newer with the tech side. Good luck!
on hiring process: get hired in the right place from the right source
those asking for work in exchange for money often fall into disparate categories: either they know the implementation already and just lack the time/man/brain power to do it themselves, or they only have varying degrees of poorly separated want-needs and don’t actually know… anything beyond that base desire. temper your need of cash or opportunity foremost to the right place: always look to see which kind of company you’re hiring with your work to give you cash.
if the company is of the former category, then you don’t have to worry: competency will be acutely sought by people who know how to see it, and they know they need to see it. all you need to do next is go to the correct window to get hired. the front desk window is for recent grads that graduated only in name and not in skill; i don’t blame companies for their shit-screening tests that help them raise the barrier to entry for well-meaning fraudsters. if you are overly experienced in other areas relative to your code skills, then you must pitch on your strongest skillset to be rendered into the programming language or developer position.
if the company is of the far more common later category, lie. they are, you should, your competition already is, and you should know it if you’re paying attention. don’t commit inaccuracy, but absolutely commit imprecision; lie by leaving out irrelevant applicant data; do not assist idiots by giving them trigger-warning excuses. furthermore, know going into such a company that your path will be of the same short-sighted-like mindset that published the hire ad in the first place: tailor your work experience expectations and deliverables to concrete short results, avoid meaningful (i.e. long term) ambitions. the long-term is an incomprehensible flight of fancy to companies driven by such want-need syndromes. every week, re-prepare your tailored cv for other companies and be ready to jump ship, and do not speak of it ever.
on opportunity: take it selfishly when you find it, don’t ask, no one else is.
opportunity is expensive. if it wasn’t, you wouldn’t be looking for it, would you? opportunity is actually ridiculously expensive, especially in this era of ‘equal’ nonsense. this means that if you want opportunity, you’re going to have to take it, and do that much more social engineering homework ahead of time, since the shit-screening tests today are, as you correctly deduced, largely socially based (i.e. age, not skill, etc.). this is a direct consequence of victim/-ism pandering: people are taking -your- opportunity by lying, getting hired on the basis of anything and everything -but- the skill required. so for former company type, present your work skill pitch fine tuned specifically to the prospect company’s dollar need and you will be a diamond in the rough. and for the later company type, lie by omission, don’t tell them what they shouldn’t be looking for anyway (i.e. your age).
on the difficulty of getting to the field (implied):
does not exist. your prior childhood and work lives made certain paths already invested in, so you ‘found’ them easier. new skill isn’t any harder than old, it’s just the correct perception that the relative old-vs-new cost is different. retask yourself. fuck your emotional ‘feels’, it is inaccurately framed, leading to inaccurate perception of difficulty. just find the job and get the job done.
on this article:
pay it no mind. it is not incorrect, but quite incomplete, and i suspect the answers you’re looking for lie in the parts omitted. unless you’re going precisely where the author went in the same setting and path he went to get there, you cannot follow by applying his solution outside of his context. false prophet, no greater picture or whole story, just like so many timeless (and all too common) well-meaning tech advice articles. ask him; the author would agree that his success did in fact not come from programming language skill, rather those skills came from his successes. this article is a retrospective analysis of which subsets of global acquired skill best aided continually developed applied ability (aka success), not in any way what skills now will lead to future applied software development ability, nor which setting such success will be replicated in.
Your tower began to emit smoke? C is a good language for beginners in 2014? Oh come on.
A CS degree isn’t opcodes, it’s math and CS theory.
You’re a bullshit artist. I doubt you’ve ever worked as any kind of a programmer. Maybe you’ve played with ASP.NET on your own time. What do you do really, help desk? Sales engineer? Janitor?
I think he said C++ which, as we all know, is a totally different beast and not at all a preprocessor for C. Two things in computing I can’t be bothered trying to understand: the semantics of object destruction for virtual inheritance in C++, and the semantics of the dictionary stack for exceptions in JavaScript.
I quit c++ for c# years ago, when the rising curve of cheap fast hardware crossed the sinking curve of .NET being less of a sluggish pig than it was initially.
STL iterators are cool. But they make you express a sequence as a tuple, which, huh. Not ideal. But if I had to weep over every cycle again, it wouldn’t kill me to go back.
But then again if I never again have to chase down lazy colleagues stupid memory leaks, it’ll be too soon for me. Ffffff… uck… That.
To all the guys complaining that these tech jobs are being outsourced, your information is out of date. Yes, tech companies tried to cut costs by outsourcing programming jobs in the early 2000’s. Those companies then discovered that, unlike workers in assembly line manufacturing or customer support, the gap in quality between a superior programmer and a mediocre one (in this case, 3rd world training) is so vast that outsourcing is inefficient. A good programmer is worth at least a dozen mediocre ones and a great programmer can easily be as productive as 50 programmer drones.
Some basic math to prove the point.
An outsourced worker costs $8/h (a number suggested by a previous poster). But the project needs 12 of these workers to equal the work of a good programmer. 8 x 12 = $96/h which is the equivalent to a $192,000 yearly salary. A good programmer can be hired for 50% to 66% of that figure.
This is true in all STEM jobs. Considering how cheap and accessible STEM education is in America (in comparison to obtaining a B.A in bullshit), a hard worker can easily vault over his outsourced competition.
As for the author of this article, his comments about experience over education are also outdated. Many of the top companies demand at least a B.S and for companies like Google and Apple, an M.S is required for any higher level engineering position. While experience is paramount, your education is what initially opens all of your employment opportunity doors.
What you miss is that most programming jobs don’t actually require a “great” programmer. There are a lot of maintenance programmer jobs, UI developers, test script writers, etc. where you don’t need an A player, you need a lot of B players to split between a lot of projects.
Yeah, high level engineers at the best tech companies aren’t really worried about being outsourced to Wipro. Your average stored procedure developer at Walmart corporate . . . he needs to be thinking next steps
Skilled white collar work doesn’t function like that. You can’t substitute three cheap lawyers for a highly experienced, expensive one. Same for software or any form of engineering. To the extent you can add cheap people to help with tasks, costs will go up geometrically. The optimal number of people for any project is the smallest possible, ideally one. As a team grows communication and coordination overheads swamp progress. It becomes effectively impossible to achieve things of any complexity as you add people, almost regardless of skill level.
Like attempting to hire three 3 foot midgets to take Shaquille’s job……
The go-to reference on this is still “The Mythical Man-Month”.
Now they are tying to go the other way, open the flood gates and let programmers into the country as “temp skilled labour”. In my country it was even legal to pay them less than a citizen too. Look up TFWs in Canada.
Much better if Government decided who could do what, and what they should get paid…….. Go gommiment, go!!
Yeah, that’s never gone wrong.
It’s an useful skill (I’m familiar with PHP and MySQL) and in great demand but come on there’s nothing masculine about sitting on your bum writing code through the night.
I’m glad someone said it.
Sure there is: you are imposing your intelligence on randomness. This is the very definition of the word “creation”.
Turning lumber into a home, turning canvas into a painting, turning concrete into a bridge, and turning hard discs with nothing but “0” on them into functional tools is a wondrous, beautiful thing.
Women nurture, men create. Coding is inherently masculine.
Apparenlty masculinity does not apply to being able to instruct machines with a formal constructed language. What a feminine thing it is to pursue such an unglamorous mental activity instead of the ultra masculine art of being a barfly like Bukowski,
Yeah, these are the sorts of gross, bloated, phony “manly” dudes who think being a man means guzzling beer and watching jagoff sports (littered with Viagara commercials) all night long.
You both make valid points but seem to be overlooking the general stereotypes of men who work in the web and software development. As someone who actually works in the field, those stereotypes are very much founded and the antithesis of what we (here) strive to be. I (and I’m assuming the author) are outliers.
I’m sure those coders really care about being called masculine when they’re bringing six-figure to seven-figure paychecks/profits. Nothing masculine about being wealthy and gainfully employed.
All paid jobs absorb and degrade the mind.
– Aristotle
I’ve been a programmer for most of my adult life. I make something else up when girls ask now.
I just say I’m CEO/cofounder of X company instead, because I am.
Although I enjoyed this piece, I find the title to be very misleading. If Software Development is “masculine” it’s due to the dearth of females in the field, not because any of the men are particularly masculine. Let’s be clear.
I would speculate that it is identifiably “masculine” because it is logical, linear, and structured. In other words, the complete opposite of western women.
And yet it produces products utterly lacking in quality control.
If software development is “masculine”, why the omnipresence of so many bugs? Only in military and airplane tech is the software not fucked up.
Because software development is difficult. Early automobiles and airplanes were rather buggy as well. Why expect GUIs to be any different?
There is also the problem of all manners of those too stupid to write software, due to social conventions and laws, having an awful lot of say in how a coder spends his time. If you pay someone by the hour, he’s going to sit there pretending to be working for as many hours as you paid him for. Coders working on their own projects, OTOH, are probably the most productive class of people to ever grace the earth.
as evidenced by blender 🙂
What Stiki said, plus: the products are buggy because the business environment pushes buggy products out into the market.
You need to think a software developer. In systematic terms. Like men. Not get bogged down by details, like women. 🙂
Viewed as a whole, the amount of functionality, innovativity and value creation that has come out of Software startup space, divided by the number of people actually working in it, is sky high. It’s an infinitely better use of a scarce resource (non retarded men) than any other mode of organizing work that I am aware of.
Suckless Tools makes some very good stuff. If you’re experiencing an excess of bugs, it’s because you’re using crappy software.
I’m just going to go ahead and leave this here for you: https://www.debian.org/
Their brains are masculine. The feminine-masculine brain spectrum goes from completely neurotic on the female side, to dysfunctional autist on the masculine side. Good developers tend towards the more abstract, less empathetic, more masculine side of the spectrum.
correct the best coders suffer from aspergers.
I think the author simply inserted the word masculine to appeal to the ROK general readership (along with the line about him flirting with the coffee shop manager). In reality, masculinity is difficult to pin down exactly. If software development is masculine because it is logical then professions which require the opposite traits must be feminine. I guess typically artists, writers, dancers etc.. would fall into that category. Yet it is perfectly possible for masculine men to exist in those professions just as it possible for feminine men to work in software development. The question is why is it that the men who work in software development often seem so emasculated? Well that surely has to be down to lifestyle and culture. Even if you are incredibly logical and rational, it does not mean you will be considered fully masculine because there is a lot more to it than that. As anyone who has read a lot of the articles on ROK should know, there is clearly a more philosophical outlook involved which we tend to call “red pill” around these parts. I can only conclude that large chunks of the tech industry are “blue pill” despite requiring masculine traits.
I think to be fully masculine is to embrace and be proficient, or at least hold adequate skill or knowledge in many aspects of your environment… Also understanding or respecting those aspects which you are not directly involved in but which contribute to your survival and happiness. Human, social and material combined.
Perhaps, but that itself is a sign of masculinity. Programming is a lot like math, if you’re wrong you’re wrong. There’s no room for the girls to play at relativism or “everybody’s opinion counts” or such similar bullshit you encounter in the humanities.
That much I understand but men in those fields are typically the antithesis of what we strive to be in terms of ideology. I’m not even going to mention physical appearance since we all know the stereotype.
Where on the GUI does the buttons go?
What color scheme should our program use?
There is plenty of room for retardation in development.
There is difference between men in IT being masculine and field being masculine.
And btw. the stereotype is far worst than reality. Right. Programmers are not your usual macho types, but well neither is average men in most other fields.
On other hand the field itself is very masculine. Well, in theory at least. Cos if you work in big corporation, then you have to deal with all that stupid corpo bullshit.
To those complaining about bugs and stuff like that. Well, fuck off. This shit is hard. You can’t make something that complex without making a mistake. There is just no fucking way. Especially when you have little time to do that. And mostly you do.
It really depends on the environment. For example, most of the men I’ve know in Finance are pretty much savages but they have to function in a completely different environment; Competitive, high-stress, high-risk and very formal.
Software Engineers (at some of the companies I’ve consulted for) work in an entirely different environment: Collaborative, low-stress, low-risk, there might be a ‘Game Room’ with Rock Band and/or Air Hockey. Those places are essentially like day care and as a result, you may see a grown man at work with a Hoodie and Toe Shoes on or an ironic “I know HTML (How To Meet Ladies)” shirt. It’s like night and day.
Well, you are right, that some fields promote masculinity more than others.
But there are different kinds of masculinity. For oil field worker both Finance guys and Programmers are pussies.
There are soldiers etc.
This isn’t simple matter to say that something is masculine and other thing isn’t. At least not with specifying what aspect of masculinity we have in mind.
Programmers are more priest, magician type of men.
http://www.artofmanliness.com/2011/11/28/the-four-archetypes-of-the-mature-masculine-the-magician/
I started out in the desert, programming fighter jet electronic warfare threat libraries. I can program all kinds of languages and have written much code from Perl to PHP to Java, C#, and C++. Throw in FORTRAN and Basic too, the latter of which goes back to my Vic-20 days. I can use gcc from command line in Linux and use the (for housewives) IDEs on Windows.
But still don’t have that degree and therefore cannot get a “real programming job”. I’ve been too busy working low-paying IT and tech support jobs (competing with foreigners who can’t speak English and don’t care enough about it to string a sentence together) to go to school and comply with the guild system. So I get to go to interviews to talk to people who are still bitter about having to pay off their student loans and they’ll be damned if they hire this guy who beat that system which has so victimized them.
Effeminate skinny guys lacking deep voices who get to decide if I have a living or not and see that I lack one piece of paper they faked their way through all expense paid college for, and they get their “revenge”.
If this were truly a “manly” profession experience would be EVERYTHING. I did get into a situation where I got to be the one hiring people and I actually went out of my way to avoid the fresh out of college pukes. Why? Because I did not want to hostile environment that comes about bringing in these young SJWs, their heads full of indoctrination and raised on everything being easy. When I have to choose who gets an interview, I choose ex military guys (yes, guys) who bootstrapped themselves up from grunt status. Most of the young “programmers” today are too dependent on frameworks and intellisense anyway. Give me a fellow who can code a linked list in C++ from memory (that was my final exam from the last night school course I managed to get through back when I was still serving in the military) and he’s in. I don’t need some snarking urban douchebag who touts knowledge of an IDE as some kind of cred and the minute he gets his own desk he’s hunting down coworkers over his dreamed up trigger issues.
For my “revenge”, lacking a “real job”, I have taken some wonderful concepts in computer development and….
weaponized them.
Sabotage the system.
There is nothing house wife-ish about IDEs and tools that include a lot of functionality that makes you more productive. The less time we spend having to fight the development environment the better.
I concur, mastering an IDE is a task of its own that can make you a very productive programmer. I prefer Eclipse, as well as being proficient with bash shell and VIM.
My personal attack on the system is to happily help out kiddies who post homework assignments on stacktrace.org .
😀 YOU, sir, are Batman.
So why don’t you start a company. Hire ex-military guys like yourself for more than what other people are paying and get much more talent. you’ll make a killing.
unless there is something you’re not telling us.
Working on it. 🙂
Next to my keyboard is a prototype that I have been working on and spent roughly 18 months writing the code for. I had to put the computer down and pick up my metal working tools to get to this point.
I coded several sorting algorithms on the fly in C to solve complicated problems for a CS final (at an engineering school with mostly juniors in my class – while I was in high school) – and got 100% – but I guess the act that I do most of my stuff in Rails and Node.JS makes me ‘dependent’.
Dude…is this John McAfee?
” I don’t need some snarking urban douchebag who touts knowledge of an IDE”
While some people might think its hardcore or cool or whatever to write their apps in NotePad, I think its a pretty fuckin stupid mentality. You can never be as productive as someone versed in a modern IDE like Visual Studio or Eclipse.
“Most of the young “programmers” today are too dependent on frameworks and intellisense anyway”
Another class of developers that I think are morons. Why waste time re-inventing XML parsers when someone has already done that work for you and presented it in an easy to use package. As for intellisense…saved keystrokes = saved time = shorter time between development and deployment = more $$$$. I’m a greedy fucker so I’ll take anything that can help me save time. Besides, I’ve done my hard time in the 90s where we didn’t have all the helpful tools and frameworks we have today. I don’t need to prove shit. I just need to get the job done.
I’ve never been one to shy from getting down and dirty but I won’t do this at the expense of being practical. Be careful about what you teach these young coders today.
No one that is paid to write code should go anywhere near PHP.
PHP, all the performance of visual basic and all the convenience and productivity of C.
Yup, Also should add, if you plan on focusing on the Microsoft technology stack, e.g. ASP.NET, stay away from visual basic.
Actually you shuld be staying away from ASP.NET and focusing on MVC
I’m not a fan, i prefer to keep the data-binding of ASP.NET controls and use an MVP pattern to separate concerns.
“Personal Home Page” language. A Q&D way of making something work. A classic write-only language.
Good post, I think there is some solid information here for guys looking to get into software. It can be a great way to make money and achieve a high-degree of personal freedom.
Though there is a lot of jerk-off stuff taught in CS, there is also some critical knowledge there. If you don’t understand algorithms and data-structures, you’re going to hit a ceiling with what you can do effectively before you start making stupid mistakes.
I also disagree with the title. I’ve spent a lot of time in this industry and working as a software engineer for a salary at a large company is probably the most beta job in the world. It’s only masculine after you pass through that phase and start your own business.
I sunk a decade working hard in a tech-hub. I’ve now saved up a good amount of money and I’m also able to work remotely from other countries much of the time, semi location-independent.
So it’s great now, but I spent a decade in the Bay Area, and tech hubs like that are the worst places on the planet for game and meeting women.
And when you work as an in-house software engineer you better get used to being treated like shit by clueless managers all the time. And all the Silicon Valley companies are now bastions of HR-enforced political correctness, with aggressive affirmative action for hiring female managers, so it’s not exactly the ideal environment for red-pill guys.
It has taken years of red-pill awareness, gym training, travel and in-field game practice to undo the damage that working in software did to my mindset, confidence, style, and game (Thank you Roosh/RVF/ROK).
If you go into software immunized with a strong dose of red-pill, then you should be able to survive a 5-10 year stint without being turned into a beta, and it can be a great way to build financial security and a location-independent lifestyle. I also strongly advise trying to find work outside of the tech-hubs (SF, Seattle, Austin) if you plan on getting your dick wet on a regular basis.
Spot on.
What degree is best for coding?
Any science or math oriented degree. If not specifically computer engineering or computer science then a tech degree with a minor in computer science or additional coursework including digital logic and data structures. Community colleges also offer excellent degrees and certificates, as seen in my recent Spearhead essay “Why Aren’t There More Women in 3D Printing?”.
A worthy post and I won’t dump on it. But frankly I think “software engineers” are by and large cowardly, lying buttholes. Most are insecure and their technical decisions are usually based on how it enhances their job security. You cannot believe anything that comes out of their mouth. When I got grilled by the FBI for a security clearance I launched into an angry rant about scurrilous software engineers. Off-topic but they did not take me up on my offer to pose as a dance video producer in Cambodia and collect vital intelligence data for a mere $100,000 initial investment. Strangely I got laid off from Encorpera Defense Electronics shortly after my FBI interview.
That being said, you can make good money at it. Take these tips though :
1. Have domain expertise outside of computing, be it accounting, mechanical engineering, dog grooming, whatever. Computer skills are only worth as much as you can use them to solve problems in a particular industry. Just having computer tech skills is a dead end.
2. I disagree with the author about education. I have met far too many “software engineers” who ended up doing that after failure at other endeavors. The worst ones don’t have a sheepskin and are very adept at contriving phony crises and concealing the details of their work which you have inherited. They know they can’t move easily to another job because they don’t have any credentials and will not hesitate to kneecap you to survive. In this day and age with massive online resources there is little excuse for getting some education to enhance your programming skills.
3. Also be aware of setups for failure when you get handed garbage software that never worked and being put under the gun to make enhancements or fix intractable bugs. A simple review of the code, it’s functional state, test results etc. and a willingness to walk away from the situation will go a long way to keeping you from being assigned the scapegoat position. Demand that they demonstrate that it works and the source code is readable. Very often the perp is still in the organization and willfully hiding the information you would need to do the work. Have your own “zero tolerance policy”; be willing to walk out over any demonstration of unethical or unprofessional behavior. No I don’t mean because some guy made a fart joke or commented on a woman’s tits (Google(sexism in tech) for plenty of that irrelevant nonsense). I mean someone trying to set you up as the group scapegoat for abuse and termination. It happens a lot, especially to new hires.
3. To find work, sse Employment Game, as described in my riveting Spearhead essays and soon to be appear in handy ebook format.
http://www.the-spearhead.com/2011/09/05/employment-game-part-iii-prospecting/
4. Try to get a clue on how to bring money into the organization. He who brings money into the organization can do whatever the f*ck he wants.
What level do you need to be to get a job in the field. Expert? It is something I’m interested in and have written programs for my company with c++ and php. But I still have huge areas to improve.
Be aware that if you enter this profession, your skills will date faster than in any other profession – constant learning *outside* of work (ie in your own time) is needed to maintain your edge and you need to be very wary of jobs that restrict you to technologies that are becoming dated, even if they pay you extremely well – I fell into that trap and I can tell you that it is a hard one to break out of.
Try impossible. The only way I broke out of COBOL 2k repairs was by going indy.
LOL, all of the old-time COBOL programmers I know can only semi-retire; there’s lots and lots and LOTS of contract work for them and (as they say) the money is just too good to turn down.
I know, but it’s no fun, and feels a bit humiliating. I mean, sure, I know that even at 40+ I could beat the tar out of any of those pimply dorks calling me ‘old fella’ or ‘legacy’, and I probably will be well into my 60’s, but those kids are so STUPID. They probably couldn’t hand code their way out of a paper box, they’ve never even SEEN vi, and even looking at assembler would probably give them an epileptic seizure.
I constantly grump about tight code. I mean, LOOK at the machines nowadays… If people could make tight code (the only respect I have for the newbies is the demoscene… they write amazing code) or even less inflated crap, they could probably have put new doom, in it’s entirety, on a bloody android.
Yes, I am old guard. I remember when a bug would delay release until it was FIXED.
One way out is to contribute to open-source projects.
Attention to detail, thoroughness, and quality control are also masculine ideals. How come they are so lacking in modern consumer technology if it’s a such a masculine profession?
Instead what consumers get are useless features, bells and whistles, shiny objects and other girly things women like. Or you’re getting something overfunctionalized, counterintuitive, rapidly obsolete and rife with bugs. You see it in over-socialized cell phones, stupid phone apps, girly automobiles, “updated” web browsers that are worse than older versions, social media sites, etc.
If technology, and by extension, software development were more masculine, you’d see more simplicity, more emphasis on basic functionality, and shit that fucking worked right without constantly changing (and still not working right).
End Rant
So iPhone-easy stuff? Or did i miss the joke? I want more control over my stuff not less.
Agile. A short time-to-market is more important than quality code these days. If I have two weeks to get version 1 of a CRM application out, I’m gonna cut corners. Yes, TWO WEEKS for an entire CRM applicaiton, from start to finish, including reports.
I’m working in an Agile/Scrum dev team, agile works when the requirements are less known and require more testing.
Waterfall is perfectly OK too if the requirements are well established with working prototypes in place.
I work in IT for a big Canadian Bank, but am not a developer. I came up the old way, right from the literal basement on the business side to the Project Management office via hard work, luck and playing my political cards right , but I’ve been around long enough to share a few things:
For developers specifically specialize, and try to get really good at what you do. I see some of our Unix guys do very well, highly in demand and they make great money.
In general: I’ve found that having an understanding of human behavior, know how to play politics (read your classic philosophy and texts on tactics and strategy, both western and eastern they contain timeless wisdom), and being worth more than you are paid will trump any credentials and get you further than the job’s duties and how well you do them. You play the man, not the puck as my father would say.
As a programmer myself, I have seen the change from working in the field for many years. I know the article covered the basics for someone who is thinking about getting into programming or looking for a career change but I have seen the biggest rise recently in the tech field in the form of mobile programming and security. The rise of the smartphone and tablets have created a growth in the consumer markets and business world as well and knowing how to program effectively for those devices is key. Computer security is also hot with the recent rise of data breaches and company hacks.
how do you forget .Net?! and you forgot the BIGGEST downside to open source development. But its a great career, I plan on moving to S.America w/ it 😉
CS is a very, very good degree if you want a career as a developer. Algorithmic design is what separates highly valued developers from replaceables. The specific implementation language is not particularly important. And, it’s also a skill that translates to other jobs/tasks. It’s almost trivial to add massive value to most non STEM heavy fields, by simply coming in and looking at their daily mundanities at a more abstract level.
Great discussion, if you want to be someone’s slave.
A lot of the points are valid if you go indy as well, but I am hoping a better writer than I can tackle it, because there are dozens of important differences that it is very difficult to easily address. But indy, while risky, is a hell of a lot more ‘masculine profession’ than working for some .com.
If you want to get into game programming, though, it’s an entirely different story.
ebay hacked today…everyone locked out, auctions disappeared on the anniversary of ebay starting.
Cue the language wars! I’d add to that list JavaScript. Yes yes, it’s not a “real” language. Whatever – it’s ubiquitous, and you have to treat it like a “real” language if you want to do anything more copy someone else’s scripts.
If it has variables and flow control, it’s a real language.
I am a software developer, I have worked for some very large companies on ERP implementations, the pay is good if you play your cards right.
My career has been stymied by a refusal to engage in politics for the most part, I only engage when I absolutely have to. Yes there are some red pill men in the industry I think it may be more the aspergers/autism thing, people gravitate to it to an extent but these men are not a large percentage of the men in the industry, in fact very few of them are, but the ones you find may be hardcore.
There are alot of women entering the world of software development as managers/project managers very few can actually write code. These women tend to cause drama, although I did work for one who was exceptionally low drama but I sensed she was an all around good person from a good family and was an outlier the opposite can be expected. I worked for another early in my career whom it was clear had probably worked her way to the top in probably a less than honorable manner as she wasn’t very talented. She respected me I think because I was very red pill at the time and didn’t kiss her ass, she had it out for the guys who were nice to her in order to gain favor with her, took bonus money from them gave it to us etc. I have always received respect from all the women I have worked with and generally they have been positive experiences but that was due to me keeping a strict relationship and not getting into drama with them. Guys who did get into drama with them didn’t fare as well, none of these were milenial women.
The brings me to my next point, young people starting today out of college are very weak/pampered in my opinion, I graduated from college in 2009 and the class I was part of was just happy to get a job, most of us worked hard and cut our teeth the first three years out of college working for large corporate companies. The new crop seems to have a different mindset, they seem to want pampering and are generally more laid back, doesn’t bother me so much but it seems to bother the real older guys.
I might also add that this profession is not good for your health, physically sitting for long periods of time isn’t good for you and it brings a whole host of issues with it. Yes you can work out but it seems to catch up as the years go by. Second since there are fast and hard rules in programming you start trying to apply this logic thinking to people and that can backfire as people are not machines, this can mean trouble.
Overall decent but not my first recommendation, I would rather do farm work/construction hands on type jobs if I could get the same pay. Also the older people in their 40s and 50s about more than half seem bitter and not too happy with it as the years go by, some are happy but there are more I would say that are unhappy, the stress catches up with you after awhile, if you are a serious developer in this industry you must produce and use your brain.
I got a business plan- white male insurance. If someone gets chopped for being a white male then there is income insurance and a union for white people and their interest. I think it could easily see it outstripping funeral insurance in 5 years.
Good article, but I fear that the author veers to far into the practical side of things. Everyone I know that hires software developers would say learn C first (so that you understand what really goes on “under the hood” in a language) and then pick up the rest of the C family (Java, C#, whatever). Ditto for CS degrees; knowing some theory makes you a much better programmer. If you’re young and think college is for you, a CS program with a good balance between theory and practice is worth your time and money. When I’m on interview boards we always ask a few basic theory questions to weed out the self-taught programmers.
While I agree that a degree per se isn’t important, the issue with self taught people is they tend to be hacks (and not in a good way). The focus and discipline (not to mention intelligence) to get through a difficult engineering or computer science program generally gives you more structured thinkers and when you are managing large, complex projects self taught guys tend to be disorganized and have a harder time working in a larger coordinated project.
Yes, having team experience helps a lot. You also learn the value of documentation.
Very good article, you summed it up very well!
What about Ruby, Rails, C++, linux (arch-debian-and fedora), Python, mysql, postgres, (raw and stream) socket i/o, Nodejs, mongodb, Java, Javascript, html/css, assembly, Qt, Android, httpd, and nginx? Also, 10 years of coding since 5th grade, and has a startup that just secured 100K of funding for 5% equity. I don’t know php though (but it looks easy enough to pick up if I ever need it), and I’m 20 (but I can deadlift 530 and weigh 182). Would you hire/work with a guy like that?
This article pairs nicely about the one about college being a rip-off because it provides concrete advice on self-improvement from someone who obviously knows what he’s talking about. It is pretty close to a check list on what to do to work in software development.
Before we talk about web page developers, let’s first say that Return Of Kings needs to support encryption (https).
Why?
Would you recommend the certifications? A+ N+ CCNA MCSE, that kind of thing?
HR Love certifications.
These aren’t related to software development
“My proof here is anecdotal. Many years ago I was working on a C++
program and I accidentally wrote to the wrong memory address in my
application. Oddly, that address corresponded to something my video card
had reserved for its usage. My computer tower began to emit smoke and
my monitor blacked-out. C and C++ offer zero memory protection, whereas
Java will attempt to prevent you from doing something that boneheaded.”
I hope you’re not serious. This is very misleading. Unless you’re writing a driver or an operating system, you cannot harm your PC with code, even with C/C++. Any modern operating system worth its salt would take advantage of ring 0 isolation which modern processors like x86 type processors would offer. 95% of applications being written today run in user space(higher than ring 0, typically ring 3) and can only interact with the kernel(ring 0 is typically kernel space) through APIs offered by the hosting OS so its the OS writers(and the people that write drivers for the various pieces of hardware used by the OS) that have to worry about frying your video card with bad code. Typically their exposed APIs would have enough error checking to prevent the typical developer from doing something harmful when they used these APIs.
Note that this is not applicable to older(damn near ancient) operating systems like DOS where you might actually be able to fry your shit with badly written code. DOS operated in real mode which didn’t offer protection rings.
This is my opinion, and my opinion alone, but software development is not a masculine profession. If anything, working behind a desk is more of a women’s role (the service sector.)
You want to know what are real masculine jobs? Here is a list:
-Police/law enforcement
-Military
-Oil/gas engineering
-Manufacturing
sure Steve Jobs, Paul McCartney and Isaac Newton weren’t “real man” because they didn’t spend their life in military barracks.
Those guys don’t symbolise masculinity. They all look like feminine men.