As was foretold, we've added advertisements to the forums! If you have questions, or if you encounter any bugs, please visit this thread: https://forums.penny-arcade.com/discussion/240191/forum-advertisement-faq-and-reports-thread/
Options

Wavering Computer Science Major

Panic ButtonPanic Button Robo-cannibalRegistered User regular
I'm currently in my third year of university majoring in English and Computer Science, with a smattering of art courses wherever I can find space. I chose CS because I wanted my computer to feel less like a magic box. I wanted to know why it can do the things it does. Also, I thought the job prospects after graduation were strong. Due to changing schools and general confusion about my life, I started the major later than usual, but can complete it on schedule, so I'm not worried about needing extra time. The problem I'm having is that I don't think I'm particularly good at coding.

Last semester was my first exposure to it, and we worked mainly in Racket and OCaml. I scraped by, but my grades weren't great. This semester is mostly Java and Scala, which I like much more than the previous languages, but I still am not stellar at programming. It's the only thing I've ever done where my progress seems totally uncoupled from the time I put into it. Sometimes the answer to a problem is clear immediately, and other times I pick away at it for hours with no useful results. For anyone who was a CS major, is this a normal experience when starting out? It's quite discouraging, and while CS jobs are plentiful, they are also competitive. I won't have much luck if I'm just not very good at coding.

My ideal career would be drawing and writing comics, so I spend most of my free time trying to improve my artwork, but I didn't want to bet entirely on that possibility, so I thought being a CS major was a practical decision. I've found, through meeting other people in the department, that a lot of CS majors seem to live and breathe the subject. It's the thing that drives many of their interests. CS has never been that important to me. Am I in the wrong field? Do I need a CS major to get a job in the field, or should I try to learn other languages at my own pace and forget about getting the official degree? Am I trying to split my time between programming and artwork and ending up mediocre at both, rather than good at one?

The only other academic path that I've really considered is medical school. I have most of the requirements already, and the idea of being able to help people as a doctor appeals to me beyond simply making a living, but I'm not ready to turn my back on CS yet. Has anyone else been in this position, and, if you continued with programming, do you think it was a wise decision? Alternatively, if you changed majors, do you regret doing so?

Drawings and short stories: sketchatron.tumblr.com

Posts

  • Options
    Mad JazzMad Jazz gotta go fast AustinRegistered User regular
    I didn't change majors, but I was undeclared until almost the end of my sophomore year. I also ended up choosing a major and minor I enjoyed learning about, regardless of the (shitty) job prospects for someone with that degree but no graduate level work. I'm a firm believer in the value of education for education's sake, and making the thing you spend most of your waking hours doing not something that makes you miserable, but I also recognize that there are real, actual dollars involved. I was super lucky and finances weren't an overbearing concern in my undergrad education, but that's a decision that everyone has to make for him/herself. All that to say, study the thing that you love if you have the opportunity.

    That's not super helpful. I can tell you all about med school though, since I'm halfway through, and I'll tell you this: unless you really, really want it, med school isn't for you. That's not meant to discourage you, but to let you know that med school fucking sucks sometimes. I absolutely, unashamedly geek out at how awesome what I get to do is, but that first semester is miserable. And the application process is even worse. Don't let med school be a thing you try out because you think you might like it, because if you don't LOVE it, you're signing up for minimum 7 more years of ball-busting constant grind that will be hard to get satisfaction from.

    camo_sig2.png
  • Options
    CptKemzikCptKemzik Registered User regular
    edited March 2014
    You're confusing computer science, which can involve the research and practice of theoretical concepts, with straight up programming. Its not uncommon for folks to hear "comp sci" and think "that credential to get if you want to be a code monkey." In other words, don't do CS as a major unless you're actually interested in it, which it sounds like you're not.

    There are many many ways to learn about your computer as something more than a "magic box." Study what you're actually passionate about so that you get good grades (to hell with the people that attempt to prescribe your program of study on these boards, getting a job involves many more factors than the degree anyway). If you're interested in entry level tech/IT jobs then learn about the programming languages on your own time, see if you can find friends/people on PA who would help you with coding issues, see if you can get your foot in the door with an IT helpdesk gig at your school or eslewhere.

    Do not try to double major with something like CS if its just an attempt to hedge your bets on the job market; it won't unless you are actually invested in the field.

    CptKemzik on
  • Options
    MulysaSemproniusMulysaSempronius but also susie nyRegistered User regular
    Is a CS minor an option? I wouldn't say to just go with what you love for school. Yes, get a degree in something you want to do. But a backup plan for getting a job doesn't hurt. Unless you hate it, it might be something nice to fall back on while trying to get a job you love.

    On the other hand, don't go into grad schoolfor med school or anything of that sort unless you really really love it. It's a different world.

    If that's all there is my friends, then let's keep dancing
  • Options
    DrowsDrows Registered User regular
    It is normal to have to sometimes grind away at a problem for hours on end, especially when learning to program, but also at all skill levels. That time spent picking away is still valuable in that you're learning how to debug and what makes the programming language tick - even when you try a fix that doesn't work, figure out why and you'll still have learned something, don't think of it as wasted time. Consider that in a real world programming gig, projects will often take days, weeks, months, and like you're experiencing now, some code will just work easy peasy and the rest will take an indeterminate amount of time to get right, it's the nature of the profession.

    IT is something to consider if you decide programming isn't for you, but still want the nice computey job prospects. That's a common path for CS folk when programming isn't their thing.

  • Options
    CelestialBadgerCelestialBadger Registered User regular
    Going to medical school because you want to help people is as naive as taking a computer science degree so that a computer is more than a magic box. I did a computer science degree and most of my friends were studying to be doctors. They worked harder than me and lived the subject more than I did (and I had been a code fanatic since 10 years old and breezed through the programming classes.) Medicine is HARD. And not all that fun, especially if you are any degree of squeamish - can you deal with gangrene, rotting corpses, and telling people their baby has cancer?

  • Options
    DisruptedCapitalistDisruptedCapitalist I swear! Registered User regular
    Going to medical school because you want to help people is as naive as taking a computer science degree so that a computer is more than a magic box. I did a computer science degree and most of my friends were studying to be doctors. They worked harder than me and lived the subject more than I did (and I had been a code fanatic since 10 years old and breezed through the programming classes.) Medicine is HARD. And not all that fun, especially if you are any degree of squeamish - can you deal with gangrene, rotting corpses, and telling people their baby has cancer?

    FWIW, not all doctors have to deal with Patients face-to-face. Some are in research, though of course that means that they have to study even more tenaciously than any of their peers if they want to break into medical research.

    "Simple, real stupidity beats artificial intelligence every time." -Mustrum Ridcully in Terry Pratchett's Hogfather p. 142 (HarperPrism 1996)
  • Options
    CelestialBadgerCelestialBadger Registered User regular
    Going to medical school because you want to help people is as naive as taking a computer science degree so that a computer is more than a magic box. I did a computer science degree and most of my friends were studying to be doctors. They worked harder than me and lived the subject more than I did (and I had been a code fanatic since 10 years old and breezed through the programming classes.) Medicine is HARD. And not all that fun, especially if you are any degree of squeamish - can you deal with gangrene, rotting corpses, and telling people their baby has cancer?

    FWIW, not all doctors have to deal with Patients face-to-face. Some are in research, though of course that means that they have to study even more tenaciously than any of their peers if they want to break into medical research.

    Not all CS people code...

  • Options
    Panic ButtonPanic Button Robo-cannibal Registered User regular
    Going to medical school because you want to help people is as naive as taking a computer science degree so that a computer is more than a magic box. I did a computer science degree and most of my friends were studying to be doctors. They worked harder than me and lived the subject more than I did (and I had been a code fanatic since 10 years old and breezed through the programming classes.) Medicine is HARD. And not all that fun, especially if you are any degree of squeamish - can you deal with gangrene, rotting corpses, and telling people their baby has cancer?

    I'm not squeamish, but as you said, that's hardly enough to get me through med school. I assure you, it's not something I take lightly.
    CptKemzik wrote: »
    You're confusing computer science, which can involve the research and practice of theoretical concepts, with straight up programming. Its not uncommon for folks to hear "comp sci" and think "that credential to get if you want to be a code monkey." In other words, don't do CS as a major unless you're actually interested in it, which it sounds like you're not.

    There are many many ways to learn about your computer as something more than a "magic box." Study what you're actually passionate about so that you get good grades (to hell with the people that attempt to prescribe your program of study on these boards, getting a job involves many more factors than the degree anyway). If you're interested in entry level tech/IT jobs then learn about the programming languages on your own time, see if you can find friends/people on PA who would help you with coding issues, see if you can get your foot in the door with an IT helpdesk gig at your school or eslewhere.

    Do not try to double major with something like CS if its just an attempt to hedge your bets on the job market; it won't unless you are actually invested in the field.

    I actually do enjoy programming, even if I find the assignments frustratingly vague. It's like figuring out a puzzle, and it's very satisfying to get something working the way I want it to. It just feels like I'm behind my peers, and that I'm spending a lot of time teaching myself things. That's fine, but if I'm going to teach myself anyway, why sign up for the classes?

    It seems to me that it's more important to know how to code than to have the degree in CS. If I decide to learn on my own, what languages are important? I have Java and Scala, and just started teaching myself Python this week.

    Drawings and short stories: sketchatron.tumblr.com
  • Options
    hsuhsu Registered User regular
    My experience is that people who are good at coding, started coding early, in their teens, years before they went to college. Like how you draw as a hobby, the good coders you meet were coding as a hobby before they did it as a profession.

    Note that there are a lot of jobs in the tech industry that want to see a CS degree (or something similar), even though the job itself does very little, if any, coding. In most medium sized (and larger) software companies, the development department is pretty small, maybe 20% to 30% of all people in the company, and only about half of the people in the dev department are actually developers.

    iTNdmYl.png
  • Options
    RendRend Registered User regular
    I actually do enjoy programming, even if I find the assignments frustratingly vague. It's like figuring out a puzzle, and it's very satisfying to get something working the way I want it to. It just feels like I'm behind my peers, and that I'm spending a lot of time teaching myself things. That's fine, but if I'm going to teach myself anyway, why sign up for the classes?

    It seems to me that it's more important to know how to code than to have the degree in CS. If I decide to learn on my own, what languages are important? I have Java and Scala, and just started teaching myself Python this week.

    If you enjoy programming and have time spent, it's a pretty good investment to get the degree and work in the field. Your attitude seems right, but what it sounds to me like is that you haven't crossed the gap between theory and production yet, which is an extremely common problem. I was a teacher's assistant for Data Structures, so I have an incredibly good idea of what that means to most people.

    I say keep working through it. Programming is an extremely lucrative activity to actually enjoy. If you can get good at it, then you're basically set.

    As a side note, I'd be willing to help you out a bit if you need. Drop me a PM and I can give you some more in depth advice if you like.

  • Options
    XixXix Miami/LosAngeles/MoscowRegistered User regular
    Computer Science is like writing, a lot of people think they can do it well, but most can't really.

    The ones that can't are the ones who learned to code but never learned the theoretical stuff.

    A career in computer science is also going to be a commitment to self-learning many things forever (if you want to stay relevant), so get used to that.

  • Options
    schussschuss Registered User regular
    Going to medical school because you want to help people is as naive as taking a computer science degree so that a computer is more than a magic box. I did a computer science degree and most of my friends were studying to be doctors. They worked harder than me and lived the subject more than I did (and I had been a code fanatic since 10 years old and breezed through the programming classes.) Medicine is HARD. And not all that fun, especially if you are any degree of squeamish - can you deal with gangrene, rotting corpses, and telling people their baby has cancer?

    I'm not squeamish, but as you said, that's hardly enough to get me through med school. I assure you, it's not something I take lightly.
    CptKemzik wrote: »
    You're confusing computer science, which can involve the research and practice of theoretical concepts, with straight up programming. Its not uncommon for folks to hear "comp sci" and think "that credential to get if you want to be a code monkey." In other words, don't do CS as a major unless you're actually interested in it, which it sounds like you're not.

    There are many many ways to learn about your computer as something more than a "magic box." Study what you're actually passionate about so that you get good grades (to hell with the people that attempt to prescribe your program of study on these boards, getting a job involves many more factors than the degree anyway). If you're interested in entry level tech/IT jobs then learn about the programming languages on your own time, see if you can find friends/people on PA who would help you with coding issues, see if you can get your foot in the door with an IT helpdesk gig at your school or eslewhere.

    Do not try to double major with something like CS if its just an attempt to hedge your bets on the job market; it won't unless you are actually invested in the field.

    I actually do enjoy programming, even if I find the assignments frustratingly vague. It's like figuring out a puzzle, and it's very satisfying to get something working the way I want it to. It just feels like I'm behind my peers, and that I'm spending a lot of time teaching myself things. That's fine, but if I'm going to teach myself anyway, why sign up for the classes?

    It seems to me that it's more important to know how to code than to have the degree in CS. If I decide to learn on my own, what languages are important? I have Java and Scala, and just started teaching myself Python this week.

    As long as you like the process, stick with it, as that's what CS and Developing is about at the core. From a practical perspective, I deal with programmers every day who have a huge problem learning new techniques or looking at things from different perspectives, so from the long run you'll probably end up ahead of the curve. One other thing to consider is branching a bit more into UI/UX design, as it may be a better fit for your art background.

  • Options
    davidsdurionsdavidsdurions Your Trusty Meatshield Panhandle NebraskaRegistered User regular
    In my experience, learning to code in an academic setting was helpless. After learning the basic structure of a language, which is done by reading from a book anyways, the only way I could progress was with real world problems with an actual mentor helping along the way. In class I was awful, in a job I was valuable for being able to quickly learn and apply what I'd learned. Maybe this is different for other people, but for me, making ever more elaborate "hello world" programs didn't help one bit, but being tasked with a job as part of a team went a long way.

    Of course, I still hated coding and decided not to pursue it any more. Still have that CS degree from a decade and a half ago though!

  • Options
    RendRend Registered User regular
    In my experience, learning to code in an academic setting was helpless. After learning the basic structure of a language, which is done by reading from a book anyways, the only way I could progress was with real world problems with an actual mentor helping along the way. In class I was awful, in a job I was valuable for being able to quickly learn and apply what I'd learned. Maybe this is different for other people, but for me, making ever more elaborate "hello world" programs didn't help one bit, but being tasked with a job as part of a team went a long way.

    Of course, I still hated coding and decided not to pursue it any more. Still have that CS degree from a decade and a half ago though!

    The truth of the matter is that with a major like CS, you get out of it what you put into it. There's always extra work you can do on an assignment- but if you settle for just A+ work, you'll gain little ground. Going above and beyond, at least in school, is the key to taking advantage of the comically good situation that is college. I mean think about it, when else in your life are you going to have a staff of multiple people who are being paid to answer your noob questions all the time, and spend personal time with you in office hours to teach you basic principles?

  • Options
    CelestialBadgerCelestialBadger Registered User regular
    edited March 2014
    Going to medical school because you want to help people is as naive as taking a computer science degree so that a computer is more than a magic box. I did a computer science degree and most of my friends were studying to be doctors. They worked harder than me and lived the subject more than I did (and I had been a code fanatic since 10 years old and breezed through the programming classes.) Medicine is HARD. And not all that fun, especially if you are any degree of squeamish - can you deal with gangrene, rotting corpses, and telling people their baby has cancer?

    I'm not squeamish, but as you said, that's hardly enough to get me through med school. I assure you, it's not something I take lightly.
    CptKemzik wrote: »
    You're confusing computer science, which can involve the research and practice of theoretical concepts, with straight up programming. Its not uncommon for folks to hear "comp sci" and think "that credential to get if you want to be a code monkey." In other words, don't do CS as a major unless you're actually interested in it, which it sounds like you're not.

    There are many many ways to learn about your computer as something more than a "magic box." Study what you're actually passionate about so that you get good grades (to hell with the people that attempt to prescribe your program of study on these boards, getting a job involves many more factors than the degree anyway). If you're interested in entry level tech/IT jobs then learn about the programming languages on your own time, see if you can find friends/people on PA who would help you with coding issues, see if you can get your foot in the door with an IT helpdesk gig at your school or eslewhere.

    Do not try to double major with something like CS if its just an attempt to hedge your bets on the job market; it won't unless you are actually invested in the field.

    I actually do enjoy programming, even if I find the assignments frustratingly vague. It's like figuring out a puzzle, and it's very satisfying to get something working the way I want it to. It just feels like I'm behind my peers, and that I'm spending a lot of time teaching myself things. That's fine, but if I'm going to teach myself anyway, why sign up for the classes?

    It seems to me that it's more important to know how to code than to have the degree in CS. If I decide to learn on my own, what languages are important? I have Java and Scala, and just started teaching myself Python this week.

    Oh, this is all wrong. You are really setting yourself up to fail here.

    First of all, yes, you do need to teach yourself a lot of the stuff. This is normal. If you signed up for an art degree, wouldn't you expect to practice a lot on your own? You would expect them to teach you techniques and art history, but ultimately the movements you do with the brush and pencils have to be learned on your own. The same with CS. They can teach you the theory of objects and inheritance, and code patterns, but using them is all up to you.

    Secondly, yes you could teach yourself coding for free, but employers will not care unless you are a virtuouso with a huge independent portfolio, and that just doesn't sound like you. You have a hard job making yourself code when teachers are giving you assignments and making you hand them in. What are the odds you'll suddenly become a keen hobbyist when you give up classes? It's easier to get a job with a CS degree and no passion for programming than all the passion and skill in the world and no piece of paper. And if you have no passion and no piece of paper? Forget it.

    Also, there is zero importance to which languages to learn. In a job you will be using languages as appropriate, whether you "know" them or not. You probably won't get any training unless you are in a huge corporation. Teach yourself how to teach yourself, if you know what I mean?

    CelestialBadger on
  • Options
    Absurdity MatrixAbsurdity Matrix Tumbledown Glory On the OutskirtsRegistered User regular
    Rend wrote: »
    The truth of the matter is that with a major like CS, you get out of it what you put into it. There's always extra work you can do on an assignment- but if you settle for just A+ work, you'll gain little ground. Going above and beyond, at least in school, is the key to taking advantage of the comically good situation that is college. I mean think about it, when else in your life are you going to have a staff of multiple people who are being paid to answer your noob questions all the time, and spend personal time with you in office hours to teach you basic principles?

    I have to emphasize this last point: Universities have a ton of resources for guidance and exploration, and you're really doing yourself a favor if you check them out and make use of them.

    In the broader scope, I suggest you explore real-life career options. Interview people working in those fields. Plan to get a taste of personal experience, if you can. Computer science is broad subject, and I found myself lost after graduation simply because I never really explored beyond my course work.

    I enjoyed programming, but I too was never a "live and breathe computer science" sort. As it is, I ended up in geographic information systems which has a visual aspect that I found lacking in my prior work. And I share this since you mentioned medical school: I believe radiography/medical imaging might provide the same satisfaction with a lower barrier to entry. Just two leads for your consideration.

    On your (sometimes) trying experience with programming, I think you'll find re-examining your approach helpful. That is, if you've tried expending more time and effort; maybe it's time to change how you're going about it. For example, if you're the sort who normally tries to figure most things out on one’s own, you might try finding a group you can learn with. Again, take advantage of the people and resources you have available; someone might guide you to a new, helpful approach or perspective.

  • Options
    zepherinzepherin Russian warship, go fuck yourself Registered User regular
    When I was in college I started down the CS path and got pretty far, but in Comp Science 3 I found that every day I was doing code and working on homework. I hated it worst than the previous day. Turns out I just like playing games. I have no inclination or desire to actually make them.

    When I realized that I cashed in the credits I earned and took another year's worth of classes for my Social Science undergrad, and got an MBA afterwords, which I found more fulfilling and interesting.

  • Options
    KrathoonKrathoon Registered User regular
    I always say a degree is a good doorstop. It will formally lock down that you were trained in computer science. If you are self-taught, you have to have some body of work or you will run the risk of people always questioning your skills.

    I am running into a situation now about whether I should go for a masters in game development or not. I am thinking it may be better just to pull together some indie games and make my bones that way.

  • Options
    L Ron HowardL Ron Howard The duck MinnesotaRegistered User regular
    In my experience, the purpose to the Bachelor's in Computer Science is not to teach you how to code, but how to program. How the computer works. Computer Science : Coding :: Astronomy : Telescopes. It's also a stopgap for people who want to get their Masters and PhDs. In fact, it's often designed to be the first step towards the higher degrees.

    I really think I only got the most value out of it in the last year or so, because the early classes are designed to weed people out. They're abnormally hard and esoteric just for that purpose. Once you get past those, I think the real value of the CompSci program shines. However, like all majors, you have to spend time out of class. That means spending tons of time programming outside of class. As was said, you get what you put into it. It's unlike high school, where you can show up and float by. As I mentioned earlier, the first two years are awful and hard and are just to make you quit out of the program. In my Intro to Computer Science class, we were taught in fucking Scheme. And the instructor was trying to teach us about objects, in a language which doesn't use any object oriented programming at all. Talk about awful. It's a language that nobody uses, that they were trying to use to teach us principles of programming because it is incapable of teaching us such things. Now imagine this for the next 2-3 years of schooling. This is why I'm saying it's awful and designed to be hard to make as many people quit unless you really want your Master's.

    With all that said, I don't use much of anything of the "practical" stuff I learned. It didn't teach me how to code or program any better. The teachers never went over things like documenting and standards. All that stuff is OJT. They did teach me how to think about the problems, and find better solutions. They taught me better problem solving skills, and some great logic and algorithmic ways of thinking about things.

    From having interviewed many people, the reason why employers want people who have a degree is because there's usually a basis or standard from which they can work you up. It's also an easy way to weed people out. I know we don't really look for people who have a CS degree as much as any degree, to show that they can complete things which they start out doing. When we interview people who don't have any degree at all, let alone CS degrees, it's much harder for us as an organization to work you up to our level of knowledge. We don't know what you know, and presume you know nothing, which takes more from us to teach you the basics. I believe this thought is relatively universal.

    If you just want to learn how to write code, don't go to a major university, go to a more local college, like a state one (I'm assuming from the way you describe it, Panic Button, you're not from the US, so I don't know what they have in your neck of the woods).

  • Options
    CelestialBadgerCelestialBadger Registered User regular
    Krathoon wrote: »
    I always say a degree is a good doorstop. It will formally lock down that you were trained in computer science. If you are self-taught, you have to have some body of work or you will run the risk of people always questioning your skills.

    I am running into a situation now about whether I should go for a masters in game development or not. I am thinking it may be better just to pull together some indie games and make my bones that way.

    The latter. Big game companies are more impressed by making games than qualifications, assuming you already have a degree in computer science (which they do look for). But you have to be a self-starter. If you are a procrastinator, a half-finished indie game impresses no-one. However getting that masters helps you make those indie games; it gives you encouragement, makes you actually knuckle down, and gives you contacts with other people in the same position as you to help with skills you may not have (eg art, music.)

  • Options
    azith28azith28 Registered User regular
    Don't ignore the degree part. Yes, experience is going to get you in the door, but many companies wont even look at your experience if you dont have any kind of formal training.

    I had trouble securing a job after getting a BS in IT, but did eventually and I'll admit right now that while I have been expected to script and program, its mostly been a job of evaluating others code to find problems (Help desk software development). If you feel somewhat comfortable with programming but have trouble in certain languages, don't let it deter you. Chances are you will be working with a language you never heard of and will need to learn it anyway.

    Stercus, Stercus, Stercus, Morituri Sum
  • Options
    schussschuss Registered User regular
    azith28 wrote: »
    Don't ignore the degree part. Yes, experience is going to get you in the door, but many companies wont even look at your experience if you dont have any kind of formal training.

    I had trouble securing a job after getting a BS in IT, but did eventually and I'll admit right now that while I have been expected to script and program, its mostly been a job of evaluating others code to find problems (Help desk software development). If you feel somewhat comfortable with programming but have trouble in certain languages, don't let it deter you. Chances are you will be working with a language you never heard of and will need to learn it anyway.

    Not to mention learning the programs data structures, the original programs style of doing things etc. etc.

  • Options
    Panic ButtonPanic Button Robo-cannibal Registered User regular
    Actually, @L Ron Howard , I'm in the States, born and raised. Is there something specific that made you think otherwise? It's intriguing to me.

    Definitely sticking with it. I've learned that I actually enjoy teaching myself new languages, so that's good. As for the stress, I didn't come to college looking for a relaxing party time anyhow, so it's alright. Thanks very much for the advice, everyone.

    Drawings and short stories: sketchatron.tumblr.com
  • Options
    zepherinzepherin Russian warship, go fuck yourself Registered User regular
    Definitely sticking with it. I've learned that I actually enjoy teaching myself new languages, so that's good. As for the stress, I didn't come to college looking for a relaxing party time anyhow, so it's alright. Thanks very much for the advice, everyone.
    Just remember that work life balance is important for college too.

  • Options
    ElfWordElfWord Registered User regular
    I agree with the others saying that the academic coding process is so far divorced from the professional process as to be useless as an indicator of if you'll enjoy the work. Development as I was taught it in college was a series of exercises, completing steps toward developing a fairly standard, known type of application, and almost always by yourself. Professional development is mostly done in teams (unless you're a freelancer or working in a specialized area), and usually involves a lot of figuring out how to use methods known and unknown to do something new or add something new to an existing application.

    The results you get out of it is still largely uncoupled from the time you put into it. There's no guarantee that the methods you use in one project will all be useful in future projects, and a large portion of professional programming is troubleshooting / Googling. You get very good at using http://stackoverflow.com/ and code linters. That said, you do get better at the process of debugging the more you do it, and it's tremendous fun to constantly be figuring out how to do things.

    When you say your ideal career is drawing comics, I don't know if that interest coincides with design at all, but if so, front-end web development may be a way to unify all this. Web design is useful in a lot of places as well as for personal projects, and javascript is using a lot more comp sci skills than it used for web apps that are relying more on front-end processing.

    I'm in Boston, where programming is in high demand because of all the tech startups. Though we're also the university capital of the world, it's hard for a lot of companies to find developers worth hiring here. You're going to be judged much more on projects you've developed on your own than you are on your degree. If you're not up for doing some coding in your free time to build some cool sites / nifty utilities you can stick on github, you're going to have much more limited options for finding a job.

    Do internships early and often. They'll give you much better experience, and a much better view of what the work is like.

    Star Wars fan, Battlestar crewman, Fantastic GM. Frequent lurker, occasional adventurer.
    Awesome android RPGs are made by my friends; check them out.
  • Options
    ScooterScooter Registered User regular
    In my experience, learning to code in an academic setting was helpless. After learning the basic structure of a language, which is done by reading from a book anyways, the only way I could progress was with real world problems with an actual mentor helping along the way. In class I was awful, in a job I was valuable for being able to quickly learn and apply what I'd learned. Maybe this is different for other people, but for me, making ever more elaborate "hello world" programs didn't help one bit, but being tasked with a job as part of a team went a long way.

    Of course, I still hated coding and decided not to pursue it any more. Still have that CS degree from a decade and a half ago though!

    This was also true for me, but largely because I suppose I needed the experience of spending a full 40 hours a week coding. Back in school, I would spend four or maybe six hours on a project and it felt like I'd been working on it for absolute ages and it was never going to go anywhere. (Though of course I did have other classes and shit going on to worry about as well.) Now I've got projects I've been working on full time for years, and those tough projects seem silly in comparison.

  • Options
    JuliusJulius Captain of Serenity on my shipRegistered User regular
    Going to medical school because you want to help people is as naive as taking a computer science degree so that a computer is more than a magic box. I did a computer science degree and most of my friends were studying to be doctors. They worked harder than me and lived the subject more than I did (and I had been a code fanatic since 10 years old and breezed through the programming classes.) Medicine is HARD. And not all that fun, especially if you are any degree of squeamish - can you deal with gangrene, rotting corpses, and telling people their baby has cancer?

    I'm not squeamish, but as you said, that's hardly enough to get me through med school. I assure you, it's not something I take lightly.

    Forget about being squeamish, that's not much of a problem anyway. I've tried and the single requirement for medical school is that you really, really, really want to do it. Really. You mention your ideal career is writing comics and that means you won't become a doctor because you didn't say your ideal career was being a doctor. The idea of being a doctor appeals to a lot of people, the actual reality of becoming and being a doctor less so.

  • Options
    darkmayodarkmayo Registered User regular
    Julius wrote: »
    Going to medical school because you want to help people is as naive as taking a computer science degree so that a computer is more than a magic box. I did a computer science degree and most of my friends were studying to be doctors. They worked harder than me and lived the subject more than I did (and I had been a code fanatic since 10 years old and breezed through the programming classes.) Medicine is HARD. And not all that fun, especially if you are any degree of squeamish - can you deal with gangrene, rotting corpses, and telling people their baby has cancer?

    I'm not squeamish, but as you said, that's hardly enough to get me through med school. I assure you, it's not something I take lightly.

    Forget about being squeamish, that's not much of a problem anyway. I've tried and the single requirement for medical school is that you really, really, really want to do it. Really. You mention your ideal career is writing comics and that means you won't become a doctor because you didn't say your ideal career was being a doctor. The idea of being a doctor appeals to a lot of people, the actual reality of becoming and being a doctor less so.

    My wife is a doctor, seeing her go nuts, break down and freak out repeatedly over the course of med school was enough to firmly put in my head that I would never want to be a doctor.

    Switch SW-6182-1526-0041
  • Options
    ToxTox I kill threads he/himRegistered User regular
    edited April 2014
    It's the only thing I've ever done where my progress seems totally uncoupled from the time I put into it. Sometimes the answer to a problem is clear immediately, and other times I pick away at it for hours with no useful results.

    Yeah, this is what we call "welcome to programming"

    It gets extra special when the answer to the problem is immediately clear and obvious, and then doesn't fucking work

    Honestly, though? It kinda sounds like you don't really completely enjoy CS coding, and it doesn't sounds like you extremely want to be doing it.

    Tox on
    Twitter! | Dilige, et quod vis fac
  • Options
    CelestialBadgerCelestialBadger Registered User regular
    darkmayo wrote: »
    Julius wrote: »
    Going to medical school because you want to help people is as naive as taking a computer science degree so that a computer is more than a magic box. I did a computer science degree and most of my friends were studying to be doctors. They worked harder than me and lived the subject more than I did (and I had been a code fanatic since 10 years old and breezed through the programming classes.) Medicine is HARD. And not all that fun, especially if you are any degree of squeamish - can you deal with gangrene, rotting corpses, and telling people their baby has cancer?

    I'm not squeamish, but as you said, that's hardly enough to get me through med school. I assure you, it's not something I take lightly.

    Forget about being squeamish, that's not much of a problem anyway. I've tried and the single requirement for medical school is that you really, really, really want to do it. Really. You mention your ideal career is writing comics and that means you won't become a doctor because you didn't say your ideal career was being a doctor. The idea of being a doctor appeals to a lot of people, the actual reality of becoming and being a doctor less so.

    My wife is a doctor, seeing her go nuts, break down and freak out repeatedly over the course of med school was enough to firmly put in my head that I would never want to be a doctor.

    Most of my friends at Uni were medical students. They worked about 3 times as hard as I did for Computer Science, or my boyfriend did for Maths. Medicine is not for the easily deterred.

  • Options
    EvigilantEvigilant VARegistered User regular
    Going into CS just to code is akin to going into a Math degree because you like doing math problems. Sure, you'll do math in a Math degree but it's more about the theorems and rules, concepts and the application of those concepts: the math problem. Math just happens to be the language used to apply that concept. This really isn't exclusive to just CS or Math: it applies to any degree honestly. Academic coding is horrible anyways (in my experience), because you're told to reinvent the wheel because of some course restriction: like being told to create your own array/linked-list class because you aren't allowed to use libraries. It's good for teaching you theory but not programming. The programming courses are just so you have the minimum knowledge to apply the theory in your other courses.

    My point is: if you want to be a comic artist/writer and that's really what you want in your lot of life, then pursue that all the way. Do what makes you the happiest and damn everyone and everything that tells you otherwise. It's rough everywhere you go; you might as well enjoy the ride along the way. It sounds like you don't enjoy CS and are only pursuing it as a backup option in case your first choice falls through. I'd say stick with your passion and if that is being a comic artist/writer then devote all of your time and energy into being better at that. It'll be rough, it'll be trying, it'll test your patience and your willpower; but if it's what you enjoy the most then the pay off is worth more than a CS job/money will ever be.

    Don't let the job market tell you what to do, do what you want to do.

    XBL\PSN\Steam\Origin: Evigilant
  • Options
    CelestialBadgerCelestialBadger Registered User regular
    I can write a mean linked list, everyone on my course thought it was pointless, and I actually used that skill a lot in my first job, working with a system that didn't have good libraries.

    But I mostly think they teach it because it teaches programming-thinking and is short enough that you can write it out long-hand in an exam.

  • Options
    EvigilantEvigilant VARegistered User regular
    edited April 2014
    I can write a mean linked list, everyone on my course thought it was pointless, and I actually used that skill a lot in my first job, working with a system that didn't have good libraries.

    But I mostly think they teach it because it teaches programming-thinking and is short enough that you can write it out long-hand in an exam.
    I hated my CS programming courses because it was purely academic exercises: create your own array class to do what an array does without using the libraries; create your own linked list class to do what a linked list does without using the libraries.

    Honestly my favorite part of my programming course was the end for my senior project and it was left relatively open, you just had to meet the requirements. "Emulate some network structure that implements a method to cut off free riders"; "develop an algorithm to find the area underneath some set of pixels"; "Based on this position, provide all possible routes to any node in the system". The big pay off was the end project: Creating a system with a head-to-tail network, that updates dynamically; the pixels being a cloud and the area you need to find being some section of the cloud that is a tornado/hurricane/horrible weather pattern. Some of the GUI implementations and applying all of that into a disaster/weather/hazardous event tracking system that alerts users and systems on the current area affected, projected area affected, current users affected and projected users affected, potential routes to take to get away from the event and the status of those routes along the way.

    It's a series of puzzles that you break down into smaller puzzles and find a way to tie it all together. It was specifically that project that was most beneficial to me because of how everything was tied in: theory and concepts are being built upon one another and if you like puzzles and logic puzzles, it was a dozy.

    Evigilant on
    XBL\PSN\Steam\Origin: Evigilant
  • Options
    Panic ButtonPanic Button Robo-cannibal Registered User regular
    Evigilant wrote: »
    Academic coding is horrible anyways (in my experience), because you're told to reinvent the wheel because of some course restriction: like being told to create your own array/linked-list class because you aren't allowed to use libraries.

    There has been a metric ton of this in my courses.

    I'll admit that I'm not in love with coding as a career path.

    Drawings and short stories: sketchatron.tumblr.com
  • Options
    CelestialBadgerCelestialBadger Registered User regular
    Evigilant wrote: »
    I hated my CS programming courses because it was purely academic exercises: create your own array class to do what an array does without using the libraries; create your own linked list class to do what a linked list does without using the libraries.

    Honestly my favorite part of my programming course was the end for my senior project and it was left relatively open, you just had to meet the requirements.

    Like I said, I have actually used the "purely academic skill" of writing a linked list many times in my career as a commercial programmer. You can even use the libraries more efficiently if you know how they work inside.

    The fact that larger systems are more interesting is fine. Normal. It's the same reason that medical students start with memorizing all the names of all the muscles in the body and God knows what else. All very boring. But it gets them on to the interesting stuff. You don't want day 1 of a medical degree to be "Operate on this patient" - you want them to have started with the basics and worked up.

  • Options
    Squidget0Squidget0 Registered User regular
    One thing that may help you a lot (it did for me) - consider doing some projects on your own time, and see if you find it more exciting when you're building something more creative. In particular, if you like games at all, there is no better time than right now to do some kind of indie game. Don't even worry about selling or distributing it, just try to make some idea you think might be fun. Use whatever resources you can find, get some other people out of your major to help if you want, and come up with an achievable plan for something you can make.

    In other words, try making something real. You're in college and no time is better suited for it. You'll get the experience of working on (and hopefully finishing) a real project, you might get to work directly with others, and you'd even get to fold in your artistic skills to some extent. It sounds like you enjoy the process of making things, so see if the end result of the tinkering becomes more worthwhile if it's a project you're invested in rather than just small assignments built for you to complete.

    Though I don't work in games now, nothing prepared for the programming world like independent game development did. You'll learn to adapt and solve a variety of problems (games can touch on almost every area of software development.) You'll learn how to structure a large project and how mistakes you make early can cause you pain later. Don't worry about the specific tech so much, half of that you'll learn on the job if this is what you want to do. Don't always expect it to be perfect, just focus on what will work best to achieve the goal in a reasonable amount of time.

    The upside of this is that if you do it, by the end you'll definitely know whether programming is something that you want to do or not. Making good software is much harder than it seems. That initial plan I mentioned earlier? Cut the scope of that plan by 80%, then expect to cut another 90% during development, and you'll have something closer to what you can reasonably do. You also may end up with a cool project that you're proud of, which can give you a huge leg up in the employment world (showing off one of my game projects in an interview got me the job I have now.)

    The downside is that those kinds of projects can eat a lot of time - but hey, you're in college, and you have more time now than you will for a long time to come. You may as well spend it on something that will last.

  • Options
    KharnastusKharnastus Registered User regular
    Sounds like you have less than 3 years experience doing CS. Finish the Degree and reevaluate from there. All of your passions and hobbies have a programming application. That medical interest of yours? Someone gets to program the robotic surgical tools. Or maybe they just automate the inventory system with a series of RFID tags that automatically get logged before and after a surgery. AAAAand you get to skip the blood! mmmm no blood and computers. Sweet deal huh? That CS degree and some extra time spent learning some useful languages will be useful no matter what you end up doing. They will pay you more just for having the degree too.

  • Options
    azith28azith28 Registered User regular
    Oh, btw. Something to consider.

    I got my BS in Computer Science (Scientific Curricula not Business). Which means there was a lot more math. If you are good at math, you might want to look into this option because by the time i finished i literally could have probably gotten multiple degrees in other sciences with only like one more semester because i had so much math and covered all the general requirements. as long as you dont waste too many hours on easy electives, even if you decide you hate it later you are very close to switching to something close in requirements to get a degree.

    Stercus, Stercus, Stercus, Morituri Sum
  • Options
    mr_michmr_mich Mmmmagic. MDRegistered User regular
    edited April 2014
    @Panic Button

    Just for reference, I did my bachelors in CS and finished in 2009 from a very good CS school. I went to a high school who had specialized IT curricula and took programming classes from 9th grade. I've been employed handily since then and basically do no coding work professionally.

    I took to programming in high school like a duck to water; writing my own games and applications and just having a ball with it. I easily grasped the whole loops/arrays/data structures nonsense and CS felt like a natural way forward. None of that mattered when I got to college. They impressed upon us that coding is simply a means to an end; a way to enact the machinations laid forth in the tenets of the field. Computer science is exactly as it sounds -- a science of making computers do what they do, and do it well. Many schools will focus on CS as "codemonkey certification" and make you take 4 years of Java or C or whatever. It was always explained to me that the language is largely irrelevant. Sure, each language has its strengths and weaknesses, its "best" uses, etc. But ultimately, you should be able to pick up a new language in no time.

    The important thing you'll get out of a good CS curriculum is the ability to reason, and that's something that you can parlay into almost any job if you do it right. Having a technical background will surely help you get into a technical field, but ultimately a CS degree is about finding the purest, most efficient way to solve a problem. It's structured that way because with computers, we finally have something that can work a million times harder and more efficient we can. Thus, by finding a way to squeeze every ounce of efficiency out of them that we can...we can wield our best tool with maximum impact. Being able to articulate the process you go through when problem-solving in CS makes you that much more attractive to prospective employers, because if you bring those skills and an ounce of passion to a job then you'll outperform most of the competition. A ton of jobs as an adult are about working smarter, and a good CS degree is basically a certification that you understand how to do that.

    TL;DR -- coding isn't super important; it's just the most efficient way for your college to verify that you know how to think good. Don't get too hung up on it, and if you're enjoying learning the analysis/logic/reasoning that goes into CS subject matter, you'll have one of the best skillsets that your tuition money can pay for.

    -edited for clarity

    mr_mich on
Sign In or Register to comment.