I am planning on pursuing computer science as a double major (along with art). I’m doing this mainly for practical reasons—right now I feel like I don’t really care about money and would rather enjoy my life than be upper-class, but I want to have an option available in case these preferences change. I enjoyed CS classes in high school, but since coming to college, I have found CS classes, while not profoundly unpleasant, to basically be a chore. In addition to this, my university is making it needlessly difficult for me to choose CS as a second major. This has lead me to rethink—is CS really worth it? After researching it a bit, it seems like CS genuinely is worth it. From what I hear, programming jobs pay very well, are easy to find, have good working conditions, and seem to relatively easily facilitate a 4-hour-workweek lifestyle, should one choose to pursue it. No other career path seems to be able to boast this.
Am I correct in thinking this? Is a computer science degree worth it even if it means a lot of drudgery during college? Conventional wisdom seems to be no—“don’t try to major in something you don’t enjoy” is something I’ve heard a few times. But that seems kind of idealistic.
The alternatives would be econ or math, both of which I am fairly unfamiliar with and find sort of interesting but don’t exactly have a passion for.
For reference, my current preferred careers are, in order:
something with video games (Lifelong Dream is to be in that hideo kojima or satoshi tajiri role where I am the man with the vision in charge but I don’t even really know how you work your way up to that position?)
something with art or illustration where i can be creative
something with graphic design where i am less creative and am doing something boring like designing logos for people or whatever
Your list of preferred careers reminds me of something, maybe relevant for you.
I used to teach in a high school for gifted children, when there were children with high intelligence but different skills. (As opposed to e.g. math-specialized high schools, where even without the IQ test you also get children with high intelligence, but their skills are very similar.) In this school a new computer game programming competition was started, with rules different than usual. In a typical programming competition, the emphasis is completely on the algorithm. It is a competition of students good at writing algorithms. But this competition, called Špongia, was different in two aspects: (1) it was a competition of teams, not individuals, and (2) the games were rated not only by their algorithm, but also by playability, easthetics, etc. Which in my opinion better corresponds to a possible success in the market.
I mention this, because there was an opportunity for people with various skills to participate in creating the computer game; and they did. Some of them even didn’t know programming, but they composed the game music, painted pictures, writed texts, or invented the ideas. Sometimes the most important member of the teams was the one able to invent a cool idea, and motivate other people to do the technical parts of the game.
So my advice for you is: if you don’t want to specialize in something, find someone who does, and cooperate with them. Find someone who can write algorithms, but doesn’t have very good ideas or is bad at painting graphics, and who also has a dream of participating in creating a computer game. Then find someone who can paint, who can compose music, etc. Create the team, start with very simple projects (beware the planning fallacy) and if everything goes well, progress to more difficult ones.
If the coder asks you about why would they want to cooperate with you, if the most difficult part of work (in their opinion) will be done by them, show them Knytt—a game with rather simple algorithm, and yet great artistic impression, because of the other components. This is your added value; to organize a team that changes an algorithm to an enjoyable game.
You can start today. Get together someone to code, someone to paint pictures, someone to compose music. If you don’t know anyone with these skills who would be interested, make a poster with your e-mail address and put it somewhere in the school. Make the people meet in the same room and together plan your first game. Insist that your first game (where the team will test their skills and cooperation) should be completed in two weeks at most—the planning fallacy will make it a few months anyway. This way you also won’t have to deal with the topic of money, etc., because no one will expect a big profit from the first simple game. For inspiration you can look at the smartphone games, which are usually very simple; or make a list of random ideas (e.g. “cars”, “flying”, “puzzle”, “Santa Claus”, “elephant”, whatever) and pick a random one or two of them and think about what you could do with it in two weeks. (Maybe it would be a good idea to use an existing engine, such as Unity, instead of writing the code from scratch.)
This is sort of what I am doing right now, I’m working with two people who are focusing on the programming side of a game while I’m essentially designing it, only it’s an unrealistically big project and the other two people don’t seem to grasp the idea that if you want to make something it won’t magically make itself and you actually have to push yourself to work on it.
I realize that I could make a dumb two-week iPhone game if I wanted, only this doesn’t really appeal to me at all, to the point where I don’t think I could find the motivation to do it. I think what I will do is I will probably wait for the current big project to eventually fall apart, work on a medium sized one until it falls apart, at which point my brain will realize that I actually need to start small.
A lot of what he writes boils down to: “Do what you love to do” is a bit of a fallacy. Getting really good at something pretty much always involves putting in a ton of work, not all of which will be pleasant. But if you do that and get extremely good at what you do, then you’ll get lots of jobs you’ll enjoy, because 1) being good at what you do is fun and 2) if you provide lots of value to other people, they will provide it back.
IOW, just going after what is the most “fun” when you start doing it probably isn’t the best idea. I wouldn’t take the fact that your CS courses are a bit drudge-y as a slamdunk indicator that you shouldn’t do CS by a long shot.
Also, you may have heard this before, but the video game industry for programmers is kind of a shitshow, because lots of people want to do it, enough so that they’re willing to be paid less and endure crappy conditions. Being an indie developer might be a better bet, if you can make it work; I have no idea what the odds of success there are.
Also, you may have heard this before, but the video game industry for programmers is kind of a shitshow, because lots of people want to do it, enough so that they’re willing to be paid less and endure crappy conditions. Being an indie developer might be a better bet, if you can make it work; I have no idea what the odds of success there are.
I did not know that, thanks.
Anyway, I would rather be involved on the artistic side, but I don’t really know anything about that career path either, so.… ¯|_(ツ)_/¯
It’s no better in the art department. In fact it’s worse because there are fewer career paths out of the industry.
It works out for some people, but you have to be willing to accept relatively low pay and work a TON at the expense of pretty much every other part of your life—exercise, social time, proper sleep, hobbies, meals away from your desk...
I was a programmer in the game industry for 3.5 years and quit just over a year ago. It was exciting, but it wasn’t worth it. I’m much happier now. Let me know if you have questions about my experience.
If you want to make games, start doing it now. It’s entirely possible for a single person to make great indie games. Working on that would also build skills that are useful for all 4 of the preferred careers you named.
It’s okay if you find CS classes boring; the real test is whether you find working on real projects (such as your own indie games) boring.
Having lots of portfolio pieces will also help with finding a job.
Yeah, I am already working on my own games. I worked on one for two hours earlier today.
My eternal problem is that I can only think big. When I was a little kid I would constantly envision these 1000-page epics I was going to write, type about seven pages or so, and then get bored and start a new project the next week. I constantly try to come up with ideas for small, fun little games that I could realistically make by myself in a few months but I can never come up with anything that appeals to me even a little. My current project seems like it will take a few years to complete and it will in all probability never see the light of day since I have never actually completed a game before. This is the most irrational habit I have and I hate it but I don’t know how to stop.
EDIT: I typed this out in the hopes that somehow the act of writing it down and LW users commenting on it would kick my brain into realizing how irrational it was being, and it worked exactly as planned. I will start working on a small project starting tomorrow. Thanks guys.
Hi, I worked in the game industry for a while. I worked on AAA titles, indie stuff and semi-indie. I’m not a designer though.
I would say that the best way to become who you want to be is to make many of your own excellent SMALL indie stuff and work your way up from there. Fortunately you’re in the right double major! Build your own games, from scratch, over and over again until you produce something really good. Make little 24 or 48-hour games for hackathons, ludum dare, global game jam, etc. I can’t give you better advice than to simply scale down your ambitions a lot. If you’ve never finished anything then that’s your major problem and you desperately need to leverage some success spirals before you can dive into a bigger idea.
If you have a giant idea that you want to implement but it’s too big, bite off a tiny chunk. Maybe it’s a gameplay mechanic, maybe an art style. If you demonstrate a kernel of something that seems good, then you will be encouraged spend more time improving it. I think there are good subreddits for indie games where you can get feedback online.
Another way that an artist friend got into the industry was by taking a QA job at an AAA studio. Then he spent a ton of time outside work learning the tools that the artists used, playing around and making cool levels and showing off his skills. He made friends in the art department and showed them his stuff, and when he finally made something impressive, the art people showed it to their bosses and he got promoted to an art position. This strategy requires substantial willingness to grind, both as a QA person (the job is ridiculously boring and requires long hours) plus the outside-work time.
I know, I know, I know. I know all of this rationally. I just can’t make my brain realize this. All the small ideas I come up with fail to motivate me even a little bit. My current plan is to wait for my current unrealistically big project to inevitably fall apart and then hopefully my brain will finally get the message.
Have you considered the possibility that you don’t actually want to make games, but do want to think of yourself as a game-maker? Asking this because I have a bit of a “I want to be a fiction writer but don’t actually want to write” issue, and what you’re describing sounds familiar.
No, I don’t think so. Game makers don’t really have enough status in society for this to be a problem, I think. Or at least, they don’t have the romantic imagery of writers, painters, poets, musicians, etc.
Like Viliam Bur pointed out, the general status in society isn’t that important: “wanting to be a video game maker” could plausibly follow from just having liked video games enough at some specific age, for example.
If you strongly feel like this isn’t your issue, I won’t argue… but I would point out that if someone did want to have an identity as a game-maker but didn’t have an interest in actually making games, then the pattern of “avoids doing small realistic projects, keeps starting big projects and then quickly gives up on them before doing much concrete work” seems almost perfectly optimized for the goal of maintaining the identity with the least amount of effort.
Game makers don’t really have enough status in society
That’s irrelevant. The important thing is whether you, for completely personal reasons, want to have “game maker” a part of your identity.
If you could just snap your fingers, and the game would magically appear already completed, according to your specification, with your name on it… how would you feel?
If Omega would predict that you will never make a game, or participate in creating one… how would you feel?
There may be a big difference between these two feelings, and yet you may dislike programming the game (or even effectively managing the game programming team).
If you could just snap your fingers, and the game would magically appear already completed, according to your specification, with your name on it… how would you feel?
Good, obviously. Isn’t this every creator’s dream, to have their vision realized down to the exact detail without having to put in any of the work?
If Omega would predict that you will never make a game, or participate in creating one… how would you feel?
Bad, but I would get over it and find something else to do.
I’m trying to explain Kaj Sotala’s comment, because I think you misunderstood it.
You want to have your game done.
You don’t like making the game.
Both these statements can be true at the same time, and this seems like a frequent problem. People can like something in far mode, and dislike it in near mode. They can make it a part of their identity, and avoid doing it.
I don’t know. For literally all my life I’ve felt compelled to work on creative projects in a variety of fields (most of which have never lead anywhere, but only really exceptional people have completed major creative projects on their own volition by their freshman year of college so I don’t feel that upset about it). While working on most of these projects, I would say that I am just “grinding” a majority of the time and in a state of flow a sizeable minority of the time. The best part is the feeling you get when you complete something and can look upon your work with satisfaction. I think game making probably has the best flow to frustration ratio of any creative endeavor I’ve done, followed by visual arts, then writing, then music. The one time I more-or-less completed a game for a month-long open-ended class project I absolutely loved doing it and was in a state of flow almost the whole time.
If it turns out that I “don’t actually enjoy” game making then I have absolutely no idea what I “actually enjoy”.
The one time I more-or-less completed a game for a month-long open-ended class project I absolutely loved doing it and was in a state of flow almost the whole time.
Seems to me that you “actually enjoyed” working on this specific game...
I would say that I am just “grinding” a majority of the time and in a state of flow a sizeable minority of the time
...but didn’t “actually enjoy” working on these other projects.
What specifically made those experiences different? (Maybe the difference was in your mind, how you approached these projects, not in the projects themselves.) If you find out, you could try doing more of the former type.
The best part is the feeling you get when you complete something and can look upon your work with satisfaction.
Yeah, but the problem is how to get to this place. :D
Off-topic: Do you have some kind of documentation about those projects you have completed? Like a photo and a short description, somewhere on the web. Such things could be useful later in job search.
Isn’t this every creator’s dream, to have their vision realized down to the exact detail without having to put in any of the work?
Not necessarily. For many, the actual fun is in the creating: that the act of creating happens to also produce an actual work is only a nice bonus, and something that could be dispensed with.
If this seems counter-intuitive, consider e.g. the more story-focused variants of tabletop role-playing games, where the participants create a story together: but the story is almost always ephemeral, and no recording of it survives afterwards. But that’s fine, because the actual fun was in the creation.
That said, this is certainly not a requirement for being an artist: plenty of creators also find large parts of whole creative process tedious, and are focused on just the end product.
I recommend you read The Motivation Hacker for techniques to get yourself to do what you know you should be doing, but can’t bring yourself to do. I especially recommend Beeminder, especially this approach to using it.
Seconded - I also spent years in the game industry, and know some people who transitioned from QA to what interested them, and others who had a neat indy portfolio to show.
Can you contribute art to other people’s game projects? Battle for Wesnoth proved big games can be made the open source way, so there got to be projects like that out there, and art isn’t a skill many programmers have. You’ll build portfolio, and maybe gain allies for future bigger projects of yours.
Have you looked into user experience design? They’re in quite high demand these days. Try making an interface (just the facade, nothing functioning) of an iPhone or Android app. You’ll learn a lot and have an immediately marketable skill. Are you good with people? Technical people who communicate effectively with clients are beloved by all. Many of the best and most lucrative jobs in tech are bridging the gap between programmers and other people.
“don’t try to major in something you don’t enjoy” is something I’ve heard a few times. But that seems kind of idealistic.
I think this is realistic rather than idealistic. College typically offers plenty of chances to procrastinate and fail courses, and if you’re not genuinely motivated to study something, forcing yourself to do so anyway over a period of several years seems like a recipe for either failure or burnout. Note that often people have difficulties making themselves study even the topics that they do genuinely enjoy and find interesting, once those topics get challenging enough.
Of course, it’s always possible that the field does start feeling more interesting to you once you get more into it.
This is really frustrating because I feel like the culture is constantly spamming two contradictory memes. Lumifer even explicitly gave me both of them upthread.
Don’t do something you don’t truly enjoy, follow your dreams
Don’t do something that isn’t practical, whatever you do, don’t end up working at McDonalds
But in my case (and probably a substantial majority of people) I honestly think that the venn diagram between one and two might have literally zero overlap. Like, isn’t the whole point of a job that it isn’t fun, and that’s why they have to pay you to do it? I tried to compromise by double majoring in something I am genuinely passionate about (art) and something practical (comp sci), but I feel like this is still not enough somehow...? Sometimes I think the only winning move is to get lucky and be born the type of person who has a natural burning desire to become an engineer.
Sometimes I feel similarly; except that I used to be passionate about programming. I suspect doing programming for a job somehow beat that out of me. (If you do something as a job, every time there is a problem at job, it is a negative reinforcement towards what you used to like. You get used to getting paid, and somehow other positive reinforcements are rare; maybe this is a cultural thing.) So I didn’t start in this situation, but I ended there anyway. These days, I do what I don’t enjoy.
Like, isn’t the whole point of a job that it isn’t fun, and that’s why they have to pay you to do it?
Not necessarily. It could be something that is fun for you, but for whatever reason other people can’t do it, so they have to pay you. For example, if the work requires a long period of learning, so when someone wants to have it done now, it is too late for them to start learning now. Or the costs of learning are so high that it wouldn’t make sense to learn it only to do it once, so someone has to specialize. Either way, the idea is to become an expert in what you do. Other people are not paying you only for doing it now, but also for being prepared to do it.
By the way, you say you are passionate about art, so… how much art do you do? Are you trying new techniques? Do you have an online gallery? Is someone using your art for something useful (even if they don’t pay you yet)?
I am asking this because there are people who make money doing art. But it seems like they have to actively advertise themselves. I also know people who have some artistic talent, but they make money doing something else, because (this is just my guess) they don’t try new things, don’t learn new techniques, don’t expand their comfort zones. So they must make money doing something else.
For example I know a girl who has a talent for many kinds of visual things: she can draw nicely, make costume jewelry, take interesting photos, many other things. Her boyfriend is doing web pages; and those pages often have some photo at the header; he buys the photos from other people or uses some free templates. So I suggested her that she could try making a few photos specifically for the headers of the web pages (e.g. nature, a city at night, a beach, anything nice and horizontal). I mean, she already is doing 90% of the thing, why not add the remaining 10% and have a product she could sell? (She even wouldn’t have to bother selling, her boyfriend would do it. He just needs a complete product.) Nope; she doesn’t feel like doing this.
So maybe this is the correct way to interpret the advice. Find something you enjoy… but then also do the remaining 10% you don’t enjoy, to have a complete product. Preferably learn to do this before you have to, while it is still a hobby; because when you already have a boss who is pushing you with deadlines, it becomes even less pleasant.
I don’t have a good answer for you: I struggle with this problem myself. The best I can suggest is to try out a lot of things, to see if you’d find something that was practical and which you did enjoy.
Like, isn’t the whole point of a job that it isn’t fun, and that’s why they have to pay you to do it?
Not necessarily: even if a job was fun, you would still need money to live, so your employer would still need to pay you.
Cal Newport’s ‘solution’ to this is basically: Get good at something and then you’ll enjoy it; expecting to enjoy anything that you are not yet good at is unrealistic. I think this probably isn’t the entire story, because natural aptitude and enjoyment are real things that can cause you to like things more or less initially… But for me at least, this does explain a lot of my enjoyment of things. I find that there are some programming tasks I used to really hate doing, which I now dig into feeling fine, because I’ve gotten good at them. It probably depends on your personality and how you react to different incentives, as well.
I think if you want to have a career in art, being able to program will help a lot. Few artists can program and good art is always about moving forward. The kind of people you want to impress as an artists generally don’t know how to program. That means that it’s relatively easy to impress people.
If you know how to sew, creating clothing that uses an arduino lilypad to do something shiny is relatively straightforward. If you walk dressed like that into art auctions people will start to notice you and ask you about it and then you can tell them about your art as an upcoming artist.
That said, you don’t need to major in computer science to be able to program. If you do a bunch of projects with arduino, the coding isn’t that complicated and you can put up the code on github to show that you can program.
As far as game programming goes, in the LW community we have people like Kaj_Sotala who works on creating a game that teaches bayesian updating. He might benefit from someone doing the necessary artwork for the game for him.
Given that I am also pretty young, I’m not exactly qualified to give career advice. That said my sort of Gladwellian position on the matter is that you don’t get to be someone like Hideo Kojima or Steve Jobs, or a more local example Yudkowsky by working your way up and taking what people give you. You need to
1) Have some level of natural ability.
2) Choose the right thing to focus on that has a good chance of success.
3) Be willing to fight for your dream. This is the hardest part, because anyone who enjoys self-made success has had to overcome numerous failures, false starts, and periods of time where it just seemed too difficult or hopeless. You have to be persistent, have endurance and never be willing to settle for “just good enough”.
More specifically to you, you don’t seem to want to be a programmer—the guy who contributes to the behind the scenes work of a video game and perhaps creates the AI. You want to be someone whose creative vision for the game turns it into something that lots of people will enjoy. And it doesn’t even have to be video games specifically. Is that about right?
In that case, start now. Don’t focus on making a super fun video game. Just figure out how to make anything. Maybe start with a pong variant. Get in lots of practice. Start getting publicity for your work through maybe newgrounds. Aggressively publicize your work once you feel confident in your abilities. Develop connections with other people in the industry if you can. All of this generalizes to art in general not just video games.
Truth be told though, there are many people who share your dream. It’s not easy, you can do everything right and still not succeed. Having a job as a programmer or graphics designer is a reasonable “safe” fallback. But if you are serious about desiring greatness it will take a lot of effort and initiative.
my university is making it needlessly difficult for me to choose CS as a second major
I expect that if you take enough in-major classes to learn the right skillset the lack of a degree in the field won’t be a huge obstacle. Though if your major is totally non-technical this might not hold. Anyway, studying CS but not getting a full second major is an option worth considering.
Thanks for the advice, but it doesn’t work that way. The problem is that, for some indiscernible reason, in order to get the art degree I need to take 48 credits in the school of arts and sciences (i.e. an entire year and a half). So it would be much easier to have a second major in the arts and sciences (e.g. math or economics) instead of the school of engineering.
Can you elaborate on this? Where does “the code you’ve written” come from? Do you produce it in school projects? Or is it from jobs you might take on the side? Are you expected to be passionate enough about programming to have a bunch of code that you wrote for fun and practice lying around? Is it a mix of all three? What should I be doing with my time?
Are you expected to be passionate enough about programming to have a bunch of code that you wrote for fun and practice lying around?
Yes, and more than that. You are expected to have written code for fun and personal use and maybe for profit and maybe just to help friends. Your code isn’t supposed to be lying around but rather be in a place like GitHub. It is good if you have contributed to an open-source project, preferably a high-profile one. It is even better if you have your own open-source project, especially if it looks cool and attracted other developers.
Employers want to look at your code because of two angles. One is that good programmers enjoy what they are doing. They like to program. People who like to program do program and not just on the job because they are paid for it.
Two is the ability to code. College degrees are not necessarily indicative of the actual ability to write good code. But being able to show directly that yes, you have written good code, is.
Fair warning: the next two pieces of advice contradict each other :-)
Piece one says that you don’t seem to enjoy coding. If you don’t you are not going to enjoy a job as a programmer. This means you will not be a good programmer and might end up being miserable in a job which consists entirely of doing what you don’t like. Find something that you enjoy doing.
Piece two says that you need to find something besides your future art degree. Something that is called a marketable skill (BFA isn’t it) which will allow you to become employed after graduation.
I know a girl who graduated from an Ivy League school with an art degree last summer. Guess what she is doing now? She is a waitress in a local pizza joint.
Employers want to look at your code because of two angles. One is that good programmers enjoy what they are doing. They like to program. People who like to program do program and not just on the job because they are paid for it.
Depends on the employer. There’s a lot of demand for programmers who aren’t Google-quality. Granted, you’ll likely be a corporate code monkey maintaining an accounting system somewhere, but it’s a living.
Piece one says that you don’t seem to enjoy coding.
I don’t know if this is really true about me. Sometimes I love it and sometimes I hate it, to be honest. I’ve pretty much hated it in college, but this might just be because of the way the courses are taught.
Something that is called a marketable skill (BFA isn’t it) which will allow you to become employed after graduation.
What are other examples of marketable skills to you?
As an aside, while I know and accept the fact that statistically BFA pays pretty poorly and has relatively high unemployment, I don’t understand it. Every company in the world needs a designer in some form or another. Who needs an anthropologist, a philosopher, a historian, a sociologist, a psychologist, etc.? And yet we are told that getting a college degree is definitely a good idea. Maybe there are a whole pool of white-collar jobs that have nothing to do with any particular major, but are only available to people who can signal their intelligence in a way that art majors can’t?
And yet we are told that getting a college degree is definitely a good idea.
People remember that it was good for them, and don’t realize that tuition has gone up while quality of instruction has gone down since they graduated. Google “higher education bubble” to see that not all people are saying that anymore.
I’ve pretty much hated it in college, but this might just be because of the way the courses are taught.
This was sort of my experience. Buy the right books and build interesting projects in the time you would be spending on classes, and you’ll probably enjoy it a lot more. You don’t need a degree in computer science to get a job as a software engineer; some experience/projects and the broad, shallow knowledge required to do well in typical interviews (and all those other interviewing skills I suppose) are enough.
You sound like you might enjoy Hacker School, by the way.
An easy test. Do you code on your own, not because something external (like homework) requires it, but on your own volition, because it’s a natural thing to do? Do you get into flow state while coding?
What are other examples of marketable skills to you?
In your context just look up post-graduation employment rates by college major. Engineers and accountants will do well. Women Studies majors, not so much.
Every company in the world needs a designer in some form or another.
Most companies need a designer only occasionally and that does not justify keeping one on payroll. If a company needs a new logo it can hire a design company or a freelancer.
Maybe there are a whole pool of white-collar jobs that have nothing to do with any particular major
Yes, they are typically called “administrative assistant” or some other variety of a junior paper-shuffler. They are rarely satisfying or lead to a career.
Do you code on your own, not because something external (like homework) requires it, but on your own volition, because it’s a natural thing to do?
No
Do you get into flow state while coding?
Yes
In your context just look up post-graduation employment rates by college major. Engineers and accountants will do well. Women Studies majors, not so much.
Yeah, I already did this. Science has always been far and away my least favorite subject in school, so science and engineering are definitely out. Math and economics seem to be the next best things after computer science, but neither of these, while interesting to a certain extent, exactly seem like buckets of fun.
Changing what you like is basically about discovering new aspects of an activity. Changing what you are good at is straightforward. It’s about learning skills. Changing what people are willing to pay you money for is a lot about going out and meeting the right people.
You also don’t have to limit yourself to things that other people have as established career paths. There less competition if you use your creativity to go to a path that has no one else on it.
there’s always someone on github who could use help with their open source thing.
Any chance you could point me at one or two?
Background: I enjoy coding, but run into problems with high-level motivation. Point me at something to do, I’ll do it (and likely enjoy myself) but when it comes to doing the pointing myself I draw a blank. Most of the code I’ve written in the last year has come from frustration with inadequate tools at work, which is productive for learning but not for sharing.
I’m currently most proficient with Python, have dabbled in C++, and commit to spending an hour each with the first two open source things anyone points me at. (2x 25 minute pomodoros, this weekend.)
Some of my stuff would be hard to contribute to without a basic background in something like chemical kinetics or partial differential equations, but my main project also kind of has the opposite problem: libMesh has a pretty dated and incomplete unit test suite, and an atrociously dated Debian package, in part because anyone with enough finite elements experience to hear about the project tends to perpetually have more urgent work occupying their time than tedious unit test and dpkg writing.
I’m not sure “want to help me write tedious stuff?” is a good solution to your motivation problem, though. If I was looking for something to jump into for fun, I might try MineTest, a Minecraft clone in C++/Lua which is surprisingly complete but still has a lot of serious limitations. If “most proficient with Python” is the deciding factor, maybe take a look at Matplotlib? A friend of mine is one of the major developers there, and I’ve been impressed by how fast it tends to supplant gnuplot/matlab/etc as the scriptable-graph-generator of choice for researchers who play with it.
The ease of getting programming jobs seems to vary, or at least I know people who had a hard time during the recession. On the other hand, I don’t know what would be better advice for staying employed during a recession.
How soon do you consider yourself getting into the industry?
Programming is unique from other high paying jobs like doctor or lawyer, in that it doesn’t take a ton of time or money to get a good degree. Couple that with the fact that it’s becoming an expected skill, and that there are increasingly more avenues for learning programming at increasingly younger ages, AND that it’s a job that lends itself well to outsourcing. You have a recipe for an over-saturated market and declining pay as the next generation enters the workforce.
it’s becoming an expected skill, and there are increasingly more avenues for learning programming at increasingly younger ages … You have a recipe for an over-saturated market
This assumes that enough people can learn to program well. Just because they are expected to learn and have many different textbooks and learning websites available, doesn’t mean that enough of them will succeed. Maybe only some fraction of population is able to master the necessary skills. Maybe we are already using a significant part of this fraction, so we get diminishing returns on trying to make more people IT-skilled.
The field of IT keeps growing, both in scope and in complexity. Twenty years ago, making a static HTML page was a good way to make tons of money; these days everyone wants interaction and database and whatever. Twenty years ago many people didn’t know internet even existed; some of them are willing to pay for a website now. Maybe ten or twenty years later they will pay you to create a better algorithm for their vacuum cleaner or refrigerator. Smartphones opened a new platform for making programs; another hardware may open another space tomorrow.
Thirty years ago, when you turned on the computer, you were invited by a command line. You had to type a command, to do anything. The inferential distance from typing commands to creating simple programs was extremely short. Also, every computer supported some kind of programming language (e.g. Basic) out of the box. You didn’t have to install anything, you had the programming language ready, and it was the same language and the same version as your neighbors had, assuming you had the same kind of the computer. With ownership of computers, programming came relatively easily. These days, the gap between using your computer (clicking on icons, various mouse operations, multimedia support, etc) and programming (typing text) is greater, and the transition is less natural. Beginning programmers these days have a large inferential distance to cross.
I am not going to predict which direction the market pay for programmers will go; I just wanted to provide an evidence for the opposite direction. In some aspects, the path to programming is becoming easier (cheaper computers, good free lessons, internet and google and open source), in other aspects it is becoming harder (more distractions, more complex technologies, greater customer expectations).
Do you have an example of another industry that was high paying, well respected, and cheap to learn, that DIDN’T decline in pay and opportunities? If so, that would allow me to give more credence to your arguments.
In my career coaching work, one of the things I try to teach is how to spot these patterns of which way a market is going. This has some classic signs, and I can give plenty of examples of other industries in which this same pattern took place.
In such case, I guess you are more likely to be correct about this than me.
Only the “cheap to learn” part feels wrong to me. I mean, the financial costs of learning programming are already literally zero in the recent years, and somehow still most people don’t learn one of the highest paying professions. Why? If they didn’t do it during the recent five years, why should they do it during the next twenty? Maybe an ability is the problem, not the financial costs of learning.
I suspect that those other industries either employed less people than IT, or that they were easier to learn. On the other hand, IT has its own specific risk—a possibility to work remotely, so it is easier to outsource.
somehow still most people don’t learn one of the highest paying professions. Why?
Because they can’t. Go talk to someone from the lower half of the IQ distribution, see if they strike you as someone whose attempts to code will not result in a disaster.
Learning to program “Hello, world” is easy. Learning to write good (clear, concise, maintainable, elegant, effective, bug-hostile) code is pretty hard.
In my career coaching work, one of the things I try to teach is how to spot these patterns of which way a market is going. This has some classic signs, and I can give plenty of examples of other industries in which this same pattern took place.
Examples would be appreciated. But this seems to be a case of trying to time the market and the usual objection applies; if you can time the market to within a year you can make huge piles of money. One of the contributors on HN, lsc of prgrmr.com talks about how he was calling the property bubble in the Bay area for years before it popped, and how if he had just got in at the frothy height of the dotcom bubble like everyone else, he’d still be ahead now on property, very far ahead.
As maia said, it’s not really about trying to time the market down to the year (or even trying to pinpoint it within 5 years)… but rather picking up on trends and trying to invest your time in the right places.
I started teaching the basic concepts after working with so many clients who had painted themselves into a corner by creating a great career in a dying industry. Some examples of industries for which the writing was on the wall:
-Print Journalism
-Almost any US manufacturing job, especially textiles.
-Projectionists
I suppose those are all jobs/industries which declined due to technology, although the example of technical manufacturing of computer hardware shares many similarities to programming/coding jobs today.
Here are a few jobs which have declined due to commoditization(is that a word?) of the knowledge:
-Typists
-Data entry specialists
-Computer Operators
Those are just the ones that have recently (past 15 years) continued to decline as skills have gone from specialist to commodity. If you go further back, you’ll find similar examples for most new technologies that initially have high pay for specialists who operate it, but which becomes very cheap to learn.
And here are some of the jobs and industries which, if my clients insist on taking them, I recommend they leverage to another job title or industry as soon as possible:
-Social Media/Community Manager
-Programmer
-Anything print journalism
I suspect that predicting trends in the pay for a certain career path doesn’t need to be that precise in order to be useful. If you can predict the year in which it’ll happen, you make huge piles of money. If you can predict the decade in which it’ll happen, maybe you can’t do that as well, but you could still make a choice to do something else.
Do you have an example of another industry that was high paying, well respected, and cheap to learn, that DIDN’T decline in pay and opportunities?
It’s cheap to learn if you are intelligent and are already good at abstract thinking.
A lot of Indian programmers get payed quite poorly because they don’t have the hacker mindset. Teaching the hacker mindset is not straightforward because there often a lot of culture in the way.
There are Indians who manage to learn to become good programmers but most people who learn programming at an Indian university don’t.
Request for some career advice:
I am planning on pursuing computer science as a double major (along with art). I’m doing this mainly for practical reasons—right now I feel like I don’t really care about money and would rather enjoy my life than be upper-class, but I want to have an option available in case these preferences change. I enjoyed CS classes in high school, but since coming to college, I have found CS classes, while not profoundly unpleasant, to basically be a chore. In addition to this, my university is making it needlessly difficult for me to choose CS as a second major. This has lead me to rethink—is CS really worth it? After researching it a bit, it seems like CS genuinely is worth it. From what I hear, programming jobs pay very well, are easy to find, have good working conditions, and seem to relatively easily facilitate a 4-hour-workweek lifestyle, should one choose to pursue it. No other career path seems to be able to boast this.
Am I correct in thinking this? Is a computer science degree worth it even if it means a lot of drudgery during college? Conventional wisdom seems to be no—“don’t try to major in something you don’t enjoy” is something I’ve heard a few times. But that seems kind of idealistic.
The alternatives would be econ or math, both of which I am fairly unfamiliar with and find sort of interesting but don’t exactly have a passion for.
For reference, my current preferred careers are, in order:
something with video games (Lifelong Dream is to be in that hideo kojima or satoshi tajiri role where I am the man with the vision in charge but I don’t even really know how you work your way up to that position?)
something with art or illustration where i can be creative
something with graphic design where i am less creative and am doing something boring like designing logos for people or whatever
some sort of programming thing
Your list of preferred careers reminds me of something, maybe relevant for you.
I used to teach in a high school for gifted children, when there were children with high intelligence but different skills. (As opposed to e.g. math-specialized high schools, where even without the IQ test you also get children with high intelligence, but their skills are very similar.) In this school a new computer game programming competition was started, with rules different than usual. In a typical programming competition, the emphasis is completely on the algorithm. It is a competition of students good at writing algorithms. But this competition, called Špongia, was different in two aspects: (1) it was a competition of teams, not individuals, and (2) the games were rated not only by their algorithm, but also by playability, easthetics, etc. Which in my opinion better corresponds to a possible success in the market.
I mention this, because there was an opportunity for people with various skills to participate in creating the computer game; and they did. Some of them even didn’t know programming, but they composed the game music, painted pictures, writed texts, or invented the ideas. Sometimes the most important member of the teams was the one able to invent a cool idea, and motivate other people to do the technical parts of the game.
So my advice for you is: if you don’t want to specialize in something, find someone who does, and cooperate with them. Find someone who can write algorithms, but doesn’t have very good ideas or is bad at painting graphics, and who also has a dream of participating in creating a computer game. Then find someone who can paint, who can compose music, etc. Create the team, start with very simple projects (beware the planning fallacy) and if everything goes well, progress to more difficult ones.
If the coder asks you about why would they want to cooperate with you, if the most difficult part of work (in their opinion) will be done by them, show them Knytt—a game with rather simple algorithm, and yet great artistic impression, because of the other components. This is your added value; to organize a team that changes an algorithm to an enjoyable game.
You can start today. Get together someone to code, someone to paint pictures, someone to compose music. If you don’t know anyone with these skills who would be interested, make a poster with your e-mail address and put it somewhere in the school. Make the people meet in the same room and together plan your first game. Insist that your first game (where the team will test their skills and cooperation) should be completed in two weeks at most—the planning fallacy will make it a few months anyway. This way you also won’t have to deal with the topic of money, etc., because no one will expect a big profit from the first simple game. For inspiration you can look at the smartphone games, which are usually very simple; or make a list of random ideas (e.g. “cars”, “flying”, “puzzle”, “Santa Claus”, “elephant”, whatever) and pick a random one or two of them and think about what you could do with it in two weeks. (Maybe it would be a good idea to use an existing engine, such as Unity, instead of writing the code from scratch.)
This is sort of what I am doing right now, I’m working with two people who are focusing on the programming side of a game while I’m essentially designing it, only it’s an unrealistically big project and the other two people don’t seem to grasp the idea that if you want to make something it won’t magically make itself and you actually have to push yourself to work on it.
I realize that I could make a dumb two-week iPhone game if I wanted, only this doesn’t really appeal to me at all, to the point where I don’t think I could find the motivation to do it. I think what I will do is I will probably wait for the current big project to eventually fall apart, work on a medium sized one until it falls apart, at which point my brain will realize that I actually need to start small.
That sounds exactly like akrasia and this forum is chock-full of techniques and tools to deal with it.
Consider reading some of Cal Newport’s writing on careers. Here’s a possible starting point.
A lot of what he writes boils down to: “Do what you love to do” is a bit of a fallacy. Getting really good at something pretty much always involves putting in a ton of work, not all of which will be pleasant. But if you do that and get extremely good at what you do, then you’ll get lots of jobs you’ll enjoy, because 1) being good at what you do is fun and 2) if you provide lots of value to other people, they will provide it back.
IOW, just going after what is the most “fun” when you start doing it probably isn’t the best idea. I wouldn’t take the fact that your CS courses are a bit drudge-y as a slamdunk indicator that you shouldn’t do CS by a long shot.
Also, you may have heard this before, but the video game industry for programmers is kind of a shitshow, because lots of people want to do it, enough so that they’re willing to be paid less and endure crappy conditions. Being an indie developer might be a better bet, if you can make it work; I have no idea what the odds of success there are.
I did not know that, thanks.
Anyway, I would rather be involved on the artistic side, but I don’t really know anything about that career path either, so.… ¯|_(ツ)_/¯
It’s no better in the art department. In fact it’s worse because there are fewer career paths out of the industry.
It works out for some people, but you have to be willing to accept relatively low pay and work a TON at the expense of pretty much every other part of your life—exercise, social time, proper sleep, hobbies, meals away from your desk...
I was a programmer in the game industry for 3.5 years and quit just over a year ago. It was exciting, but it wasn’t worth it. I’m much happier now. Let me know if you have questions about my experience.
The iconic “working in video games is awful” story: EA Spouse
If you want to make games, start doing it now. It’s entirely possible for a single person to make great indie games. Working on that would also build skills that are useful for all 4 of the preferred careers you named.
It’s okay if you find CS classes boring; the real test is whether you find working on real projects (such as your own indie games) boring.
Having lots of portfolio pieces will also help with finding a job.
Yeah, I am already working on my own games. I worked on one for two hours earlier today.
My eternal problem is that I can only think big. When I was a little kid I would constantly envision these 1000-page epics I was going to write, type about seven pages or so, and then get bored and start a new project the next week. I constantly try to come up with ideas for small, fun little games that I could realistically make by myself in a few months but I can never come up with anything that appeals to me even a little. My current project seems like it will take a few years to complete and it will in all probability never see the light of day since I have never actually completed a game before. This is the most irrational habit I have and I hate it but I don’t know how to stop.
EDIT: I typed this out in the hopes that somehow the act of writing it down and LW users commenting on it would kick my brain into realizing how irrational it was being, and it worked exactly as planned. I will start working on a small project starting tomorrow. Thanks guys.
Hi, I worked in the game industry for a while. I worked on AAA titles, indie stuff and semi-indie. I’m not a designer though.
I would say that the best way to become who you want to be is to make many of your own excellent SMALL indie stuff and work your way up from there. Fortunately you’re in the right double major! Build your own games, from scratch, over and over again until you produce something really good. Make little 24 or 48-hour games for hackathons, ludum dare, global game jam, etc. I can’t give you better advice than to simply scale down your ambitions a lot. If you’ve never finished anything then that’s your major problem and you desperately need to leverage some success spirals before you can dive into a bigger idea.
If you have a giant idea that you want to implement but it’s too big, bite off a tiny chunk. Maybe it’s a gameplay mechanic, maybe an art style. If you demonstrate a kernel of something that seems good, then you will be encouraged spend more time improving it. I think there are good subreddits for indie games where you can get feedback online.
Another way that an artist friend got into the industry was by taking a QA job at an AAA studio. Then he spent a ton of time outside work learning the tools that the artists used, playing around and making cool levels and showing off his skills. He made friends in the art department and showed them his stuff, and when he finally made something impressive, the art people showed it to their bosses and he got promoted to an art position. This strategy requires substantial willingness to grind, both as a QA person (the job is ridiculously boring and requires long hours) plus the outside-work time.
I know, I know, I know. I know all of this rationally. I just can’t make my brain realize this. All the small ideas I come up with fail to motivate me even a little bit. My current plan is to wait for my current unrealistically big project to inevitably fall apart and then hopefully my brain will finally get the message.
Have you considered the possibility that you don’t actually want to make games, but do want to think of yourself as a game-maker? Asking this because I have a bit of a “I want to be a fiction writer but don’t actually want to write” issue, and what you’re describing sounds familiar.
No, I don’t think so. Game makers don’t really have enough status in society for this to be a problem, I think. Or at least, they don’t have the romantic imagery of writers, painters, poets, musicians, etc.
Like Viliam Bur pointed out, the general status in society isn’t that important: “wanting to be a video game maker” could plausibly follow from just having liked video games enough at some specific age, for example.
If you strongly feel like this isn’t your issue, I won’t argue… but I would point out that if someone did want to have an identity as a game-maker but didn’t have an interest in actually making games, then the pattern of “avoids doing small realistic projects, keeps starting big projects and then quickly gives up on them before doing much concrete work” seems almost perfectly optimized for the goal of maintaining the identity with the least amount of effort.
That’s irrelevant. The important thing is whether you, for completely personal reasons, want to have “game maker” a part of your identity.
If you could just snap your fingers, and the game would magically appear already completed, according to your specification, with your name on it… how would you feel?
If Omega would predict that you will never make a game, or participate in creating one… how would you feel?
There may be a big difference between these two feelings, and yet you may dislike programming the game (or even effectively managing the game programming team).
I’m not exactly sure what you’re trying to say.
Good, obviously. Isn’t this every creator’s dream, to have their vision realized down to the exact detail without having to put in any of the work?
Bad, but I would get over it and find something else to do.
I’m trying to explain Kaj Sotala’s comment, because I think you misunderstood it.
You want to have your game done.
You don’t like making the game.
Both these statements can be true at the same time, and this seems like a frequent problem. People can like something in far mode, and dislike it in near mode. They can make it a part of their identity, and avoid doing it.
(The status in society is irrelevant.)
Oh, okay, I see what you’re saying.
I don’t know. For literally all my life I’ve felt compelled to work on creative projects in a variety of fields (most of which have never lead anywhere, but only really exceptional people have completed major creative projects on their own volition by their freshman year of college so I don’t feel that upset about it). While working on most of these projects, I would say that I am just “grinding” a majority of the time and in a state of flow a sizeable minority of the time. The best part is the feeling you get when you complete something and can look upon your work with satisfaction. I think game making probably has the best flow to frustration ratio of any creative endeavor I’ve done, followed by visual arts, then writing, then music. The one time I more-or-less completed a game for a month-long open-ended class project I absolutely loved doing it and was in a state of flow almost the whole time.
If it turns out that I “don’t actually enjoy” game making then I have absolutely no idea what I “actually enjoy”.
Seems to me that you “actually enjoyed” working on this specific game...
...but didn’t “actually enjoy” working on these other projects.
What specifically made those experiences different? (Maybe the difference was in your mind, how you approached these projects, not in the projects themselves.) If you find out, you could try doing more of the former type.
Yeah, but the problem is how to get to this place. :D
Off-topic: Do you have some kind of documentation about those projects you have completed? Like a photo and a short description, somewhere on the web. Such things could be useful later in job search.
LOL. I see the source of some of your problems :-)
The answer to your question is “No, it is not”.
Not necessarily. For many, the actual fun is in the creating: that the act of creating happens to also produce an actual work is only a nice bonus, and something that could be dispensed with.
If this seems counter-intuitive, consider e.g. the more story-focused variants of tabletop role-playing games, where the participants create a story together: but the story is almost always ephemeral, and no recording of it survives afterwards. But that’s fine, because the actual fun was in the creation.
That said, this is certainly not a requirement for being an artist: plenty of creators also find large parts of whole creative process tedious, and are focused on just the end product.
Also, creators don’t necessarily have a complete dream at the beginning. As Tolkien said, “The tale grew in the telling”.
I recommend you read The Motivation Hacker for techniques to get yourself to do what you know you should be doing, but can’t bring yourself to do. I especially recommend Beeminder, especially this approach to using it.
Seconded - I also spent years in the game industry, and know some people who transitioned from QA to what interested them, and others who had a neat indy portfolio to show.
Can you contribute art to other people’s game projects? Battle for Wesnoth proved big games can be made the open source way, so there got to be projects like that out there, and art isn’t a skill many programmers have. You’ll build portfolio, and maybe gain allies for future bigger projects of yours.
Have you looked into user experience design? They’re in quite high demand these days. Try making an interface (just the facade, nothing functioning) of an iPhone or Android app. You’ll learn a lot and have an immediately marketable skill. Are you good with people? Technical people who communicate effectively with clients are beloved by all. Many of the best and most lucrative jobs in tech are bridging the gap between programmers and other people.
I think this is realistic rather than idealistic. College typically offers plenty of chances to procrastinate and fail courses, and if you’re not genuinely motivated to study something, forcing yourself to do so anyway over a period of several years seems like a recipe for either failure or burnout. Note that often people have difficulties making themselves study even the topics that they do genuinely enjoy and find interesting, once those topics get challenging enough.
Of course, it’s always possible that the field does start feeling more interesting to you once you get more into it.
This is really frustrating because I feel like the culture is constantly spamming two contradictory memes. Lumifer even explicitly gave me both of them upthread.
Don’t do something you don’t truly enjoy, follow your dreams
Don’t do something that isn’t practical, whatever you do, don’t end up working at McDonalds
But in my case (and probably a substantial majority of people) I honestly think that the venn diagram between one and two might have literally zero overlap. Like, isn’t the whole point of a job that it isn’t fun, and that’s why they have to pay you to do it? I tried to compromise by double majoring in something I am genuinely passionate about (art) and something practical (comp sci), but I feel like this is still not enough somehow...? Sometimes I think the only winning move is to get lucky and be born the type of person who has a natural burning desire to become an engineer.
Sometimes I feel similarly; except that I used to be passionate about programming. I suspect doing programming for a job somehow beat that out of me. (If you do something as a job, every time there is a problem at job, it is a negative reinforcement towards what you used to like. You get used to getting paid, and somehow other positive reinforcements are rare; maybe this is a cultural thing.) So I didn’t start in this situation, but I ended there anyway. These days, I do what I don’t enjoy.
Not necessarily. It could be something that is fun for you, but for whatever reason other people can’t do it, so they have to pay you. For example, if the work requires a long period of learning, so when someone wants to have it done now, it is too late for them to start learning now. Or the costs of learning are so high that it wouldn’t make sense to learn it only to do it once, so someone has to specialize. Either way, the idea is to become an expert in what you do. Other people are not paying you only for doing it now, but also for being prepared to do it.
By the way, you say you are passionate about art, so… how much art do you do? Are you trying new techniques? Do you have an online gallery? Is someone using your art for something useful (even if they don’t pay you yet)?
I am asking this because there are people who make money doing art. But it seems like they have to actively advertise themselves. I also know people who have some artistic talent, but they make money doing something else, because (this is just my guess) they don’t try new things, don’t learn new techniques, don’t expand their comfort zones. So they must make money doing something else.
For example I know a girl who has a talent for many kinds of visual things: she can draw nicely, make costume jewelry, take interesting photos, many other things. Her boyfriend is doing web pages; and those pages often have some photo at the header; he buys the photos from other people or uses some free templates. So I suggested her that she could try making a few photos specifically for the headers of the web pages (e.g. nature, a city at night, a beach, anything nice and horizontal). I mean, she already is doing 90% of the thing, why not add the remaining 10% and have a product she could sell? (She even wouldn’t have to bother selling, her boyfriend would do it. He just needs a complete product.) Nope; she doesn’t feel like doing this.
So maybe this is the correct way to interpret the advice. Find something you enjoy… but then also do the remaining 10% you don’t enjoy, to have a complete product. Preferably learn to do this before you have to, while it is still a hobby; because when you already have a boss who is pushing you with deadlines, it becomes even less pleasant.
I don’t have a good answer for you: I struggle with this problem myself. The best I can suggest is to try out a lot of things, to see if you’d find something that was practical and which you did enjoy.
Not necessarily: even if a job was fun, you would still need money to live, so your employer would still need to pay you.
Cal Newport’s ‘solution’ to this is basically: Get good at something and then you’ll enjoy it; expecting to enjoy anything that you are not yet good at is unrealistic. I think this probably isn’t the entire story, because natural aptitude and enjoyment are real things that can cause you to like things more or less initially… But for me at least, this does explain a lot of my enjoyment of things. I find that there are some programming tasks I used to really hate doing, which I now dig into feeling fine, because I’ve gotten good at them. It probably depends on your personality and how you react to different incentives, as well.
I think if you want to have a career in art, being able to program will help a lot. Few artists can program and good art is always about moving forward. The kind of people you want to impress as an artists generally don’t know how to program. That means that it’s relatively easy to impress people.
If you know how to sew, creating clothing that uses an arduino lilypad to do something shiny is relatively straightforward. If you walk dressed like that into art auctions people will start to notice you and ask you about it and then you can tell them about your art as an upcoming artist.
That said, you don’t need to major in computer science to be able to program. If you do a bunch of projects with arduino, the coding isn’t that complicated and you can put up the code on github to show that you can program.
As far as game programming goes, in the LW community we have people like Kaj_Sotala who works on creating a game that teaches bayesian updating. He might benefit from someone doing the necessary artwork for the game for him.
Given that I am also pretty young, I’m not exactly qualified to give career advice. That said my sort of Gladwellian position on the matter is that you don’t get to be someone like Hideo Kojima or Steve Jobs, or a more local example Yudkowsky by working your way up and taking what people give you. You need to
1) Have some level of natural ability. 2) Choose the right thing to focus on that has a good chance of success. 3) Be willing to fight for your dream. This is the hardest part, because anyone who enjoys self-made success has had to overcome numerous failures, false starts, and periods of time where it just seemed too difficult or hopeless. You have to be persistent, have endurance and never be willing to settle for “just good enough”.
More specifically to you, you don’t seem to want to be a programmer—the guy who contributes to the behind the scenes work of a video game and perhaps creates the AI. You want to be someone whose creative vision for the game turns it into something that lots of people will enjoy. And it doesn’t even have to be video games specifically. Is that about right?
In that case, start now. Don’t focus on making a super fun video game. Just figure out how to make anything. Maybe start with a pong variant. Get in lots of practice. Start getting publicity for your work through maybe newgrounds. Aggressively publicize your work once you feel confident in your abilities. Develop connections with other people in the industry if you can. All of this generalizes to art in general not just video games.
Truth be told though, there are many people who share your dream. It’s not easy, you can do everything right and still not succeed. Having a job as a programmer or graphics designer is a reasonable “safe” fallback. But if you are serious about desiring greatness it will take a lot of effort and initiative.
I expect that if you take enough in-major classes to learn the right skillset the lack of a degree in the field won’t be a huge obstacle. Though if your major is totally non-technical this might not hold. Anyway, studying CS but not getting a full second major is an option worth considering.
Thanks for the advice, but it doesn’t work that way. The problem is that, for some indiscernible reason, in order to get the art degree I need to take 48 credits in the school of arts and sciences (i.e. an entire year and a half). So it would be much easier to have a second major in the arts and sciences (e.g. math or economics) instead of the school of engineering.
A CS degree and the ability to write code are different things.
Good employers will ask you to show them the code you’ve written and will be entirely indifferent to your college major.
Can you elaborate on this? Where does “the code you’ve written” come from? Do you produce it in school projects? Or is it from jobs you might take on the side? Are you expected to be passionate enough about programming to have a bunch of code that you wrote for fun and practice lying around? Is it a mix of all three? What should I be doing with my time?
Yes, and more than that. You are expected to have written code for fun and personal use and maybe for profit and maybe just to help friends. Your code isn’t supposed to be lying around but rather be in a place like GitHub. It is good if you have contributed to an open-source project, preferably a high-profile one. It is even better if you have your own open-source project, especially if it looks cool and attracted other developers.
Employers want to look at your code because of two angles. One is that good programmers enjoy what they are doing. They like to program. People who like to program do program and not just on the job because they are paid for it.
Two is the ability to code. College degrees are not necessarily indicative of the actual ability to write good code. But being able to show directly that yes, you have written good code, is.
Fair warning: the next two pieces of advice contradict each other :-)
Piece one says that you don’t seem to enjoy coding. If you don’t you are not going to enjoy a job as a programmer. This means you will not be a good programmer and might end up being miserable in a job which consists entirely of doing what you don’t like. Find something that you enjoy doing.
Piece two says that you need to find something besides your future art degree. Something that is called a marketable skill (BFA isn’t it) which will allow you to become employed after graduation.
I know a girl who graduated from an Ivy League school with an art degree last summer. Guess what she is doing now? She is a waitress in a local pizza joint.
Depends on the employer. There’s a lot of demand for programmers who aren’t Google-quality. Granted, you’ll likely be a corporate code monkey maintaining an accounting system somewhere, but it’s a living.
I don’t know if this is really true about me. Sometimes I love it and sometimes I hate it, to be honest. I’ve pretty much hated it in college, but this might just be because of the way the courses are taught.
What are other examples of marketable skills to you?
As an aside, while I know and accept the fact that statistically BFA pays pretty poorly and has relatively high unemployment, I don’t understand it. Every company in the world needs a designer in some form or another. Who needs an anthropologist, a philosopher, a historian, a sociologist, a psychologist, etc.? And yet we are told that getting a college degree is definitely a good idea. Maybe there are a whole pool of white-collar jobs that have nothing to do with any particular major, but are only available to people who can signal their intelligence in a way that art majors can’t?
People remember that it was good for them, and don’t realize that tuition has gone up while quality of instruction has gone down since they graduated. Google “higher education bubble” to see that not all people are saying that anymore.
This was sort of my experience. Buy the right books and build interesting projects in the time you would be spending on classes, and you’ll probably enjoy it a lot more. You don’t need a degree in computer science to get a job as a software engineer; some experience/projects and the broad, shallow knowledge required to do well in typical interviews (and all those other interviewing skills I suppose) are enough.
You sound like you might enjoy Hacker School, by the way.
An easy test. Do you code on your own, not because something external (like homework) requires it, but on your own volition, because it’s a natural thing to do? Do you get into flow state while coding?
In your context just look up post-graduation employment rates by college major. Engineers and accountants will do well. Women Studies majors, not so much.
Most companies need a designer only occasionally and that does not justify keeping one on payroll. If a company needs a new logo it can hire a design company or a freelancer.
Yes, they are typically called “administrative assistant” or some other variety of a junior paper-shuffler. They are rarely satisfying or lead to a career.
No
Yes
Yeah, I already did this. Science has always been far and away my least favorite subject in school, so science and engineering are definitely out. Math and economics seem to be the next best things after computer science, but neither of these, while interesting to a certain extent, exactly seem like buckets of fun.
You need to find something that satisfies three criteria:
You like it
You are good at it
People are willing to pay you money to do it
It’s really up to you to figure out what “it” is.
What if “it” doesn’t exist?
That means you have to change one of the things.
Changing what you like is basically about discovering new aspects of an activity.
Changing what you are good at is straightforward. It’s about learning skills.
Changing what people are willing to pay you money for is a lot about going out and meeting the right people.
You also don’t have to limit yourself to things that other people have as established career paths. There less competition if you use your creativity to go to a path that has no one else on it.
Then you have to put on your big-boy pants, suck it up, and deal with it.
Note that (1) is adjustable by you, within limits. Note that (2) is also adjustable by you, also within limits.
Fun, and practice, and there’s always someone on github who could use help with their open source thing.
Source: myself, and everyone else on github who could use help with our open source things. ;-)
Any chance you could point me at one or two?
Background: I enjoy coding, but run into problems with high-level motivation. Point me at something to do, I’ll do it (and likely enjoy myself) but when it comes to doing the pointing myself I draw a blank. Most of the code I’ve written in the last year has come from frustration with inadequate tools at work, which is productive for learning but not for sharing.
I’m currently most proficient with Python, have dabbled in C++, and commit to spending an hour each with the first two open source things anyone points me at. (2x 25 minute pomodoros, this weekend.)
Some of my stuff would be hard to contribute to without a basic background in something like chemical kinetics or partial differential equations, but my main project also kind of has the opposite problem: libMesh has a pretty dated and incomplete unit test suite, and an atrociously dated Debian package, in part because anyone with enough finite elements experience to hear about the project tends to perpetually have more urgent work occupying their time than tedious unit test and dpkg writing.
I’m not sure “want to help me write tedious stuff?” is a good solution to your motivation problem, though. If I was looking for something to jump into for fun, I might try MineTest, a Minecraft clone in C++/Lua which is surprisingly complete but still has a lot of serious limitations. If “most proficient with Python” is the deciding factor, maybe take a look at Matplotlib? A friend of mine is one of the major developers there, and I’ve been impressed by how fast it tends to supplant gnuplot/matlab/etc as the scriptable-graph-generator of choice for researchers who play with it.
yes
The ease of getting programming jobs seems to vary, or at least I know people who had a hard time during the recession. On the other hand, I don’t know what would be better advice for staying employed during a recession.
How soon do you consider yourself getting into the industry?
Programming is unique from other high paying jobs like doctor or lawyer, in that it doesn’t take a ton of time or money to get a good degree. Couple that with the fact that it’s becoming an expected skill, and that there are increasingly more avenues for learning programming at increasingly younger ages, AND that it’s a job that lends itself well to outsourcing. You have a recipe for an over-saturated market and declining pay as the next generation enters the workforce.
This assumes that enough people can learn to program well. Just because they are expected to learn and have many different textbooks and learning websites available, doesn’t mean that enough of them will succeed. Maybe only some fraction of population is able to master the necessary skills. Maybe we are already using a significant part of this fraction, so we get diminishing returns on trying to make more people IT-skilled.
The field of IT keeps growing, both in scope and in complexity. Twenty years ago, making a static HTML page was a good way to make tons of money; these days everyone wants interaction and database and whatever. Twenty years ago many people didn’t know internet even existed; some of them are willing to pay for a website now. Maybe ten or twenty years later they will pay you to create a better algorithm for their vacuum cleaner or refrigerator. Smartphones opened a new platform for making programs; another hardware may open another space tomorrow.
Thirty years ago, when you turned on the computer, you were invited by a command line. You had to type a command, to do anything. The inferential distance from typing commands to creating simple programs was extremely short. Also, every computer supported some kind of programming language (e.g. Basic) out of the box. You didn’t have to install anything, you had the programming language ready, and it was the same language and the same version as your neighbors had, assuming you had the same kind of the computer. With ownership of computers, programming came relatively easily. These days, the gap between using your computer (clicking on icons, various mouse operations, multimedia support, etc) and programming (typing text) is greater, and the transition is less natural. Beginning programmers these days have a large inferential distance to cross.
I am not going to predict which direction the market pay for programmers will go; I just wanted to provide an evidence for the opposite direction. In some aspects, the path to programming is becoming easier (cheaper computers, good free lessons, internet and google and open source), in other aspects it is becoming harder (more distractions, more complex technologies, greater customer expectations).
Do you have an example of another industry that was high paying, well respected, and cheap to learn, that DIDN’T decline in pay and opportunities? If so, that would allow me to give more credence to your arguments.
In my career coaching work, one of the things I try to teach is how to spot these patterns of which way a market is going. This has some classic signs, and I can give plenty of examples of other industries in which this same pattern took place.
In such case, I guess you are more likely to be correct about this than me.
Only the “cheap to learn” part feels wrong to me. I mean, the financial costs of learning programming are already literally zero in the recent years, and somehow still most people don’t learn one of the highest paying professions. Why? If they didn’t do it during the recent five years, why should they do it during the next twenty? Maybe an ability is the problem, not the financial costs of learning.
I suspect that those other industries either employed less people than IT, or that they were easier to learn. On the other hand, IT has its own specific risk—a possibility to work remotely, so it is easier to outsource.
Because they can’t. Go talk to someone from the lower half of the IQ distribution, see if they strike you as someone whose attempts to code will not result in a disaster.
Learning to program “Hello, world” is easy. Learning to write good (clear, concise, maintainable, elegant, effective, bug-hostile) code is pretty hard.
Examples would be appreciated. But this seems to be a case of trying to time the market and the usual objection applies; if you can time the market to within a year you can make huge piles of money. One of the contributors on HN, lsc of prgrmr.com talks about how he was calling the property bubble in the Bay area for years before it popped, and how if he had just got in at the frothy height of the dotcom bubble like everyone else, he’d still be ahead now on property, very far ahead.
As maia said, it’s not really about trying to time the market down to the year (or even trying to pinpoint it within 5 years)… but rather picking up on trends and trying to invest your time in the right places.
I started teaching the basic concepts after working with so many clients who had painted themselves into a corner by creating a great career in a dying industry. Some examples of industries for which the writing was on the wall: -Print Journalism -Almost any US manufacturing job, especially textiles. -Projectionists
I suppose those are all jobs/industries which declined due to technology, although the example of technical manufacturing of computer hardware shares many similarities to programming/coding jobs today.
Here are a few jobs which have declined due to commoditization(is that a word?) of the knowledge: -Typists -Data entry specialists -Computer Operators
Those are just the ones that have recently (past 15 years) continued to decline as skills have gone from specialist to commodity. If you go further back, you’ll find similar examples for most new technologies that initially have high pay for specialists who operate it, but which becomes very cheap to learn.
And here are some of the jobs and industries which, if my clients insist on taking them, I recommend they leverage to another job title or industry as soon as possible: -Social Media/Community Manager -Programmer -Anything print journalism
I suspect that predicting trends in the pay for a certain career path doesn’t need to be that precise in order to be useful. If you can predict the year in which it’ll happen, you make huge piles of money. If you can predict the decade in which it’ll happen, maybe you can’t do that as well, but you could still make a choice to do something else.
It’s cheap to learn if you are intelligent and are already good at abstract thinking.
A lot of Indian programmers get payed quite poorly because they don’t have the hacker mindset. Teaching the hacker mindset is not straightforward because there often a lot of culture in the way.
There are Indians who manage to learn to become good programmers but most people who learn programming at an Indian university don’t.