Sorry, but I would have to disagree with you on this. I've been programming now for over 35 years, and really cannot see myself doing anything else. I find I can channel my creativity into programming in many ways, and writing a good piece of code gives me the same satisfaction as writing or recording apiece of music. Yes, I am a musician too, and while they are very different, I see a lot of similarities between them too.
ANY job can become a task of 'piling bricks via brute force and slavery' at some point in time. Every good friend who has had a seemingly dream job has broken down and despaired at some of the drudgery involved over a beer.
One of them does, in fact, write plays that do very well in the UK theatre scene and he also writes TV shows that do well locally - but he often speaks of the interminable problems dealing with promoters, agents, crew and transport.
Another good friend tours the world as a physio with an international cricket team. First class flights and hotels everywhere, rubbing shoulders with celebrities. Many of us (thought we) would kill for such an opportunity, but he says he is tired of living out of a suitcase and having to check the local papers under the door every morning to remember which city he is in.
It is all a matter of perspective.
Also, this makes that a musician can be a "musician" in normal life. He or she doesn't need to change their identity. Developer culture does not blend with the normal world, and as a developer I believe you really have to switch between two worlds. That can be tiring.
If anything, I've often found that the perspective and knowledge that come with my professional experience are socially valuable, rather than the converse. I get a fair bit of my social interaction over beer and cider at a nearby bar, and it's pretty common that, when a conversation gets around to professions, I find myself fielding questions on all manner of subjects from the plausibility of widespread voting machine fraud to the rise of the machines - I spent a good few minutes the other day allaying fears that turned out to go back to that Ars article with the picture of Arnold as the T-800 that turned up here a little while back. I suppose the possibility exists that I did so in a particularly Aspergery way.
I just had an interview at an IT Law Firm, and made a fool of myself. That's why I completely agree that, we as "people who are good at computers" need to keep seperate identities.
Because if you go full Aspergers, you make yourself vulnerable. Once people realize you're "different", you get the "poor boy treatment" and that hurts.
PS: I am still trying to get over the interview, sorry if I don't make any sense.
Or worse, once you're pegged as a hopeless geek then people tend to walk all over you and you're not seen as the kind of person who advances, becomes management, etc. You're a freakshow human resource to perform labor that, unfortunately needs to be done, until everything can be a one-click cloud solution.
I make a very special effort to hide whatever geeky qualities I have. I think ultimately a lot of geek culture is manboy-ish and the kinds of people who let all of that loose at work are seen as childish or immature, right or wrong. Sadly, those of us into things like hard sci-fi or DIY maker stuff get lumped in with the guy who still buys Superman comics at age 40 or thinks over-sexualized fan-service anime is humanity's highest artistic calling.
But sometimes, it slips out inevitably.
Regaining your image or just being able to hold your head high requires great effort.
Cold world but I'm sure there's a way to go about it that inspires more awe than resent.
I try to work on side projects and continue to develop my skills. But those are dreams and I need to be prepared for reality.
If I had the guts, I would risk everything and drop out of law school.
Good. you got out there and made mistakes. Now you can learn from them and you wont ever be that bad henceforth, hereunto. I made a total ass out of my self the first few programming interviews I went to. First one, recruiter called me (woke me up at ~10am) and I thought I'd show "initiative", I said "sure Ill be there in 2 hours". Went totally unprepared, didn't even bring a copy of my resume. They even lectured me about improving my interview skills.
Second one, I made the mistake of asking my potential coworker "what college he went to", thinking anyone in an engineering profession went to college. The manager interjected that he was 'self taught', this wasn't a total faux-pas on my part, but it created an awkward moment where I didnt really know what to say. I further erased any possibility of getting the job by getting too relaxed/comfortable and blurted out that I'm really groggy in the morning (cringe). I learned quickly, eventually got good at interviews, and ultimately got a job at bloomberg, which is fairly difficult to get past their interiew process.
So dont take it out on your neck, pick yourself back up and make a list of things you can take away from your experience. you have no other direction to go than up.
Bloomberg, where it's just one giant open noisy room? Doesn't sound like much of a reward to me.
Personally, I wish I had never gone into programming. I wanted a profession where I could sit in peace and quiet and work on interesting intellectual problems on my own. Little did I know that programming would not be like that after the year 2010. If I had known this, I would have chosen a different profession, probably something involving medicine, since at least there's lots of women in those workplaces.
You can still work in a medical field, for example, as a bio-informatician.
I am doing fine. I went contractor, and currently in healthcare / imaging. I dont even sweat interviews anymore :)
First, I shouldn't mention my passion for computers. They're looking for a lawyer, not an engineer. They already employ engineers, who are active in legal research. Second, I should pick a career outside of IT-Law. Solely working on technology feels too close to the heart. Third, I shouldn't speak a lot and reveal details about my life when I'm too excited during an interview.
Now, I only have to endure the next couple of days, then the sting will go away. After a couple of months, I'll remember this as an experience and I'll laugh at how foolish I was.
I dont know much about law, but to ignore your passion doesn't seem wise. I think you'd just have to spin it. Come up with a narrative that says tech has always been a part of your life, "but not as much as law", or "but it was missing something", or some other bullshittery that makes sense in that field. People want an impassioned person. And I also disagree that you should ignore IT law, it's in very heavy demand right now, isn't it ? The lawyers who can write amazing briefs struggle to understand technical protocols. Dont pass up on a dynamic field that will drive you. Also, shout out to https://www.reddit.com/r/LawFirm and other subreddits that might be of assistance to you. Good luck.
The key is to not let your profession define you no matter who you are. Once you let your profession take up every part of your life that is when it is difficult to discuss problems with other people. This would be the same with any profession even artists of any type.
It's tremendously difficult to share the problems inherent in most showbiz professions.
That's partially because they tend to be very complex and counterintuitive. If we wanted to have a conversation about my problems selling a feature film (assuming I was currently doing so - thankfully I'm not), I'd first need to give you a 90-minute seminar on how selling films works in 2016, unless you're also in the business.
It's also partially because people are usually very jealous of you working in such a cool profession, and thus any problems you have become "complaining about diamond shoes pinching".
My wife however does not feel the same way about a 90 minute lecture on how compilers work.
You don't need to change your identity or succumb to "developer culture" in order to succeed, and in fact being a citizen of the "normal" world is a distinct advantage in many regards - product design, communicating with non-developers, team management..
Works both ways though. I'm a writer (albeit a technical writer) and I find developer culture a bit intimidating as I'm trying to educate myself and hopefully change careers. Devs can be quite sniffy and elitist if you're not one of the club.
But, as a freelance writer who works remotely, I do get the "you can't possibly understand what it's like to have a real job" attitude from a lot of people too. It's not like creative professionals are entirely accepted by "mainstream culture" either.
I see what you did there :)
@oneeyedpigeon cunningly made the connection between my friend being a physio (physiotherapist) whose main job is providing healing and relief from muscle pain usually by rubbing or applying pressure. (Computer programmers like me who spend a long time at the keyboard often visit a physio to get our shoulders manipulated and rubbed to relieve built up tension).
To reframe this from the 'musician' side of my life, a lot of other guitarists I play with absolutely hate changing the strings on their guitars. They treat it like a chore to be avoided and rushed through only when really needed.
But a few years ago, I read a short story about how Samurai warriors used to care and polish their sword blades on a regular basis. I was entranced by the ritual and ceremony around this mundane process, so I set up a similar process around my guitar string changes. Now I actually look forward to doing string changes, as it give me a lot of meditative time to bond and learn more about my instruments and my music.
i.e. the sysadmin bringing down the company from within. The Web Developer commandeering his own botnet. The backend developer who makes a fortune mining doge coins. And so forth.
This is why it's so important for me to work on something people use.
At a previous job I'd sometimes hit a wall. I would log into one of the production API hosts and tail -f the access logs, where I'd see many different people and applications using a piece of software that I'd help write. I'd grab an IP address and geolocate it and see where the person was from.
The humanization of work can be extremely powerful. It reminds you that you're providing value to the world, that you've created something useful even if it sometimes feels so pointless.
PS, it's a periodic XHR to http://map.bookdepository.com/browse/map.json, which gives back one thing. Just in case you were interested...
Unless u are working on a heavily confidential project that has a certain legal anonymity requirement (in which case the user's IP should be scrambled anyway), I don't see how doing a whois query could create any damage.
- It shows by example that this behaviour is okay thus others are less reluctant to run queries of smilar nature
In itself each of them is not so big but all these behaviours add up to the 'culture' of either respecting the user's privacy or taking it not very seriously.
This depends entirely on what you're working on - programming is just a tool to make something after all. As an example, I'm a video game programmer who specializes in gameplay (characters, weapons, metagame, other mechanics), AI, and user experience. This means I'm also part game designer, so there is a ridiculous amount of creativity required for my role on a daily basis (which I absolutely adore). It's really nice not working to a hard spec, a lot of my job is trying different approaches and seeing what's fun.
Your point was good, it didn't need this poor stereotyping.
Cancer?
Get over it man.
Depression?
Get over it man.
This is not cool.
I'm continually annoyed that I actually have to say "autism spectrum disorder" to describe MYSELF, lest I be called politically incorrect.
Many just want to live a normal life, and having other people (with no vested interest whatsoever) rushing to our "defense", is quite honestly more condescending than OP's original comment.
Many, sure. But all? And even regardless of the answer to that question, I don't think that's a good reason to not call someone a jerk for being a jerk about it.
You work in a particular field, is it possible to take your knowledge of the "daily grind" to one of the development houses making tools you use? Is there some software that would be particularly useful that doesn't yet exist? Can you write plug-ins for existing tools (and sell them, a friend did that for audio processing software)?
You have domain experience, you don't have to forfeit it if you make the switch to programming.
Not really. Our software is essentially a set of quite advance image/data processing pipelines. Companies who produce it are looking for people with (very) advanced math/C skills as it's not as simple as "import cv2".
Thanks for support though.
clarification: I'm doing truly microscopic amount of development at work. And usually these are simple Python scripts.
I'm also particularly curious about the "no formal education in CS" bit - for various complicated reasons I haven't (yet?) completed basic HSC, and am wondering how to break into the industry in general. I'm not 100% sure where I want to start, but "simple Python scripts" sounds rather interesting. I assume there was a bit of being in the right place at the right time, but besides that, how did you get yourself noticed?
I got my job by getting noticed through my GitHub blog, to which I dedicated only about a half hour every other night for a month or so.
One night I got an article at the top spot of HN's front page. I had a great job offer within hours from a dev at a company which I've always respected.
Content on my blog was self taught, 99% of what I do at work is self taught. Formal CS education is still useful, but the ratio of cost/reward is terrible.
In VFX? I dropped from the Uni, went to the local VFX shop and offered them to work for free during night shifts. It was during the crunch time, so essentially it was an offer they were unable to refuse :] After some years of low quality TV spots I got into feature film industry. That's what I still do.
Very interesting, working for free is (for hilarious reasons) something I could probably pull off right now. I'm curious what kind of work this was - was it more generic coding or industry-specific? I've wanted to play around with graphics for some time, but "get a GPU and mess around with it" has repeatedly not worked out for me, so I've no industry experience.
Are you suggesting that you've learned everything there possibly is to learn, you're already brain dead (and getting paid for it).
Wait a minute...you don't work for the government, do you?
No worse than any other profession. Sure, most days I do more of the same, build reports for finance/corporate problems. It's rolling stones up a hill every morning, but that has nothing to do with programming itself. The issue you're describing is that you're working to haul someone else's stones. Fine, all well and good, pay is good. Wouldn't be any different if I was a musician or a painter... all they ever request is that I play Piano Man.
For me the art comes in doing it a different way each time. Maybe it's a function of my inexperience, I've only been doing this for a few years so far but the horizon seems so far away and there's so much to learn that I can't imagine getting bored anytime soon. Everything is amazing and I can't learn it all! In the meanwhile there's stuff to learn outside of tech. Like gardening or baking. Baking bread is a series of simple tricks (temperature of the yeast, bowl type, kneading techniques, etc.) that people do in order to produce an outcome (a certain crust or flavour). I'm struck often by how similar I find it to writing code.
Try rolling the stone with one hand tied behind your back.
True for outsourced departments of big corporations (Java chicken farms). Not everywhere creating the software is at this stage of development though. There are many creative and agile (not necessary "Agile") businesses and places where creating the software evolved. They are at the stage of XIXth century civil engineering - a lot is being built, plenty of experimenting, people are getting hurt, and most of it collapses. Only couple of magnificent monuments will survive but the rest will be discarded.
The idiom would be monkeys, so monkey typewriter farms?
centers of typewriting excellence?
So, it's just not for you. You fail to see art in it, That happens, it's ok. Maybe you need to think about gradually moving to the movie business, they need programming too, you know.
I learned to pick struggles I love, to pick processes I love and to pick fights I love. Writing code a.k.a. "programming" is a part of struggles I have chosen for myself and I am fine with it. What I learned through the process:
- Do "programming" if you love to pile bricks on top of each other, with no structural integrity, done by brute force as one of thousands of slaves, building a pyramid for someone else.
- Do "programming" if you love to pile bricks on top of each other, sometimes with structural integrity, sometimes with elegance, as a lone wolf or a part of a small team working on its own business. Just remember Derek Sivers.
- Do "programming" as a part of solving your own problems you would otherwise solve by boring manual work. Don't tell about your programming skills to your boss. Make a short day and have a beer while others are solving their own problems with boring manual work! Cheers! Credit goes again to Derek Sivers.
But if you care about "working on the next pyramid" and you are not the pharao... well, to cite Mark Manson, you "are giving too many fucks where fucks do not deserve to be given".
Sorry for the offensive language, blame Mark Manson for it, if you want to.
Please don't stay because of the pay. You won't look back in 25 years and say "I'm so glad I bought a new iPhone in 2016, but didn't do the things I wanted to in life"
The last company I worked for was full of people only staying because retirement was "only" 10-15 years away, and they were not a healthy/happy lot.
You'd be giving up your life "now" in the hopes of a good life "then", which is insanity.
I have left Software twice now to pursue my goals - the first time I spent two years driving Alaska->Argentina more-or-less on vacation, and right now I'm spending two years driving around Africa. I'm exploring my passions while on the road for writing, photograph, videography, languages, etc. etc. I have less money now, and a lot more happiness.
So there is hope, I think, and that hope, I think, is improving our understanding and practice of software architecture[5].
And it's not like there we don't have examples in software. Let's take Bentley's challenge[6]: Don Knuth with 12 pages of (literate/web) Pascal, Doug McIllroy with 6 lines of shell. Or Nile/Gezira, a modern graphics subsystem (think Cairo or Quartz) in ~500LOC. Yes, 500LOC.
So we need to figure out what makes these examples work so much better and how we can apply what we've learned to make our lives better. That's what I am doing, care to join me? [5]
[1] http://queue.acm.org/detail.cfm?id=1039523
[2] https://www.youtube.com/watch?v=B5hGmXFHQS4
[3] https://www.youtube.com/watch?v=wKY-0atLDAo
[4] https://www.youtube.com/watch?v=0OAtHOLIg84
[6] http://franklinchen.com/blog/2011/12/08/revisiting-knuth-and...
I guess it's not for everybody. There's always going to be people that whatever they do it's just going to be a job.
While other people find it to be an art. You can say this of finances, music, programming, accounting, anything, really.
could you, please, elaborate on this meme?
And that pyramid, well, it definitely is the way how a corporate and enterprise Java software has been and still being made. Java itself is an ecosystem for creating coding factories - to parallelize the process of coding (one cannot honestly call this programming) among teams of easily replaceable, uniform (in terms of abilities) cheap workers. Every manager will tell about this ideal.
For programming look at PAIP or the lisp code supplement to AIMA - this is programming. Take a look at Plan9 - this is programming. People who have created Erlang were engaged in programming. Code that runs Google's AI is programming. This is an art, same as writing poetry, composition of music, writing symphonies or complex novels.
But there are very few slots available, because demand for programming is very low - it is still difficult and very expensive. Conveyor belt coding, on the other hand, is indeed fits the Kay's pyramid metaphor. And the result of such process is crap - everyone have seen "enterprise code" made by such sweat shops..
The crucial difference between an art and merely piling up more crap is that art means an attempts to approach an ideal, an optimum, perfection - it is, ideally, a reduction process with eventually converges to the closest possible approximation to an ideal. Something like this:
[] ++ ys = ys
(x:xs) ++ ys = x : xs ++ ys
While in the in the second case is just a process of production. Not in the sense of Japanese perfection of every move and detail, but in the sense a hipster produces yet another narcissistic blog post.BTW, Asperger is this. And it is not that bad.)
So is the web today, its bloat eclipsing even Enterprise Java. The idea you described is the idea all businesses pursue, because it's the one of reducing costs and increasing profits.
> The crucial difference between an art and merely piling up more crap is that art means an attempts to approach an ideal, an optimum, perfection - it is, ideally, a reduction process with eventually converges to the closest possible approximation to an ideal.
Unfortunately you can rarely get paid for this.
In a way, I'm happy markets are not efficient. A lot of good, important, useful and/or beautiful stuff would never be done if the market was perfectly efficient.
And they'll have a couple cryogenically frozen 20th century sysadmins in case the thing breaks.
What remains? Projects that are so useful that dominate their niche. Windows, Linux. Office. Photoshop. CAD tools. I suspect VLC will remain, 7zip may too. Some of those tools are pyramids, some others aggregation of small artpieces. I don't think survival depends on whether or not the software is a pyramid or a thatch hut.
Is it really true?
Personally, I'm evidence for it, since I spend my days building pyramids, and program only on the side.
But the entire thing does not add-up. The artful activity is so much more productive that I can not stop believing that in any market you are able to create a slot doing it, you will outcompete all the pyramid builders. (Yet this pyramid pays me too well to just abandon it.)
But I don't love it. Alan Kay is right, it's like building "an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves". There's no elegance and no higher vision. It's an Asperger profession; smart but artless.
I would prefer, if I could retire, to make short films and maybe to write plays. But I can't retire yet. So I'll push stones. It pays well.