Page 1 of 39 12311 ... LastLast
Results 1 to 100 of 3892

Thread: Majoring in Comp Sci

  1. #1
    Samwise the Brave Traak's Avatar
    Join Date
    Dec 2012
    Posts
    364
    Tuconots
    -4

    Majoring in Comp Sci

    This is probably the wrong forums but I will give it a shot. The reason I put it here because my questions are for people who code/develop specifically.

    Basically I am returning to college this summer to pursue a degree in computer science. I'd like to use it to one to develop games and/or software post graduation. The problem I foresee is job outlook. Most of my friends who majored in comp sci are all IT. None of them actually code. According to some statistics (Occupation Profile - America's Career InfoNet) its a growing job that pays pretty well. Ofc there are other software jobs, I am just using this as a quick example. The website makes it seem like there are tons of these jobs out there but everyone I talk to works IT. Here are a few questions I have for those who do code for a living and/or majored in comp sci.

    Does this pay scale seem accurate (average pay $40+ an hour)?

    Besides a degree, do i need experience or some kind of portfolio to really get a good coding job?

    I am willing to relocate, so location is not a problem but did you guys have a hard time finding a job?

    Any suggestions? I am using O*NET OnLine for research on the various jobs in programming and development.

    Just a quick FYI i have about 90 semester hours already. I was majoring in Physics before I took a break from school to let my wife finish. Money is not a problem. I have a full ride to my degree via Gi Bill. Thanks!
    Last edited by Traak; 03-15-2014 at 01:44 AM.

  2. #2
    Registered User
    Join Date
    Dec 2012
    Posts
    270
    Tuconots
    -1
    Here are some general thoughts, about 4 years in:

    Comp Sci is a solid degree regardless. There are a variety of jobs (IT as you mention) even if programming doesn't work out. For programming specifically, it depends on if you are a more logical person than average. If so, then it can work out and you will definitely be at or above $40 per hour a few years in.

    Pros of this route, intending to become a programmer:

    1) Good wages once you have some experience. 6 figures around the 4-5 year mark feels average.
    2) No stress about job security after you have some experience, especially if you move to a city like Seattle or San Fran. Want to move on from your current job for whatever reason? That's cool, there are hundreds of companies to choose from.
    3) The work is usually fairly varied as the problems change as different situations/road blocks occur. You aren't being paid $$ to repeatedly hammer a nail.
    4) Usually fairly flexible about working from home, and in some cases working from other parts of the country (for short periods) if you have stuff going on in your life.
    5) Satisfies the desire to build things that many have.

    Cons of the route you are thinking about:
    1) Comp Sci degrees are 10% relevant stuff, 90% bullshit you won't ever use again. You might have some of the pre reqs out of the way, but the relevant classes are typically boolean logic, data structures, algorithms, and like 1 other class. For 4 years of college.
    2) Getting a job right out of college without any experience can be tough. There are probably 10,000 job openings available to me as a dev with 4 years experience in Seattle. There are probably like 100 for people right out of college. Still there, still can be found, but I've definitely heard and seen people complain about it. It is doable, it is still probably easier than other fields but it isn't trivial. Try to get a cool internship while in school if you can, preferably at a company you might want to work for 1-2 years after you graduate.
    3) Game development is balls for hourly rates and job security compared to enterprise dev or consulting. I have a buddy that went from game dev to software consulting and loves it. He makes more money works way fewer hours, enjoys his work more, and doesn't have to worry about getting let go when game studios go through their firing phases. I have 2 other buddies who went to a "game development" college and when they both graduated they both went enterprise/consulting because they make way more money and work fewer hours.
    4) Not everyone is cut out to be a "good" developer. It takes a certain logical mindset that some people just don't seem to have and can't build. This usually results in them moving to more IT/CRM/database/testing type roles or just being a bad developer. Note: still all things that a CS degree is good for, just wanted to get it out there though.

    Overall, I think it is a good way to go if you are at a crossroads. After I got out of the military I did the CS degree -> developer thing and I now think it was a great decision but it doesn't work out for everyone.

    Hope this helped.

  3. #3
    Registered User
    Join Date
    Dec 2012
    Posts
    3,713
    Tuconots
    -15
    Listen to #3 specifically, as I can attest to experience on both sides of that coin. I recommend you do NOT go into the gaming industry as a software engineer.

  4. #4
    Everything is meaningless Vinen's Avatar
    Join Date
    Dec 2012
    Posts
    1,288
    Tuconots
    -25
    Quote Originally Posted by Dumar View Post
    Listen to #3 specifically, as I can attest to experience on both sides of that coin. I recommend you do NOT go into the gaming industry.
    Just as correct.

    If you go down the path of being a Software Engineer YOU MUST GET AT LEAST ONE INTERNSHIP PRIOR TO GRADUATING. YOU WILL BE WORTHLESS TO ANY COMPANY AND UNWANTED OTHERWISE.

    I don't care what school you are from. If you lack an internship you are not worth my time.

  5. #5
    Registered User
    Join Date
    Dec 2012
    Posts
    12,682
    Tuconots
    54
    Your friends who don't code on a daily basis may do it out of choice. Just because you're in comp sci doesn't mean you're a competent coder or enjoy it. There are tons of people in the industry who do non-coding stuff because of all the perks of a developer but not actually having to develop. For people who love developing we wouldn't want to be doing anything else.

    The pay varies by location, obviously. I'd say for someone with 0-3 years of experience in the midwest you're looking more around the 50-55k area. But IT wages grow rapidly with experience. I started at 50k and within 5 years I'm now at 76k. With another promotion in line in a couple more years to bump that more into the 85-90k region. Wages in this field are very, very time based.
    Last edited by Tenks; 03-17-2014 at 05:13 PM.

  6. #6
    Everything is meaningless Vinen's Avatar
    Join Date
    Dec 2012
    Posts
    1,288
    Tuconots
    -25
    Quote Originally Posted by Tenks View Post
    Your friends who don't code on a daily basis may do it out of choice. Just because you're in comp sci doesn't mean you're a competent coder or enjoy it. There are tons of people in the industry who do non-coding stuff because of all the perks of a developer but not actually having to develop. For people who love developing we wouldn't want to be doing anything else.

    The pay varies by location, obviously. I'd say for someone with 0-3 years of experience in the midwest you're looking more around the 50-55k area. But IT wages grow rapidly with experience. I started at 50k and within 5 years I'm now at 76k. With another promotion in line in a couple more years to bump that more into the 85-90k region. Wages in this field are very, very time based.
    Depends. You can also rapidly advance in wages by jumping jobs. The sad part is we peak pretty quickly unless ... we go into management or are one of the few who can break into Architect roles (of which I have one).


    That said, since I shat on the thread earlier with this I will shit on it again. Get an internship every year. Summers arnt' for working at McDonalds. Deal with an unpaid if you have to.

  7. #7
    Delicious Noodles Noodleface's Avatar
    Join Date
    Dec 2012
    Location
    MA
    Posts
    19,187
    Tuconots
    63
    Yep.. internships all the way, mine hired me actually.

    I don't code anymore though solutions architect path
    Noodleface#1412 - <Rerolled> US-Hyjal Horde - Noodleface

    Follow me on Twitch! - Streaming Rerolled minivan dad raids Friday nights 9PM EST and Saturday mornings 11AM EST!

  8. #8
    Registered User
    Join Date
    Dec 2012
    Posts
    417
    Tuconots
    1
    It's been mentioned several times but an internship is a MUST and side projects you have done on your own another plus. Even more so if you really want to get into the game industry. Show you are willing and able to learn new things on your own. An ideal internship will also let you explore your interests. IE DBA work, front end/back end coding etc. Bigger name companies are usually going to filter by GPA too for new grads.

    Certainly a lot of positions open out there. Starting pay ranging from 45k-75k for undergrad depending on several factors. School name, experience and the location of the job can all factor in. Start networking early on LinkedIn with seniors graduating as they may be good leads to future jobs. Often jobs are never really posted but go off of referrals. There is certainly a need for good talent out there and it can be hard to find sometimes.

    Contracting vs full time salary for a company is also something to consider for the path you eventually take. Pros and cons to both. I prefer the stability,vacations/benefits from a salary position though.

  9. #9
    Registered User
    Join Date
    Dec 2012
    Posts
    328
    Tuconots
    4
    My buddy is insanely smart, so not sure if he's the exception rather than the rule, but he graduated from University of Washington with a CS degree and started at Microsoft for 80K a year plus bonus. Four years later and he's at Amazon making over six figures.
    Last edited by Ortega; 03-18-2014 at 10:37 PM.

  10. #10
    Samwise the Brave Traak's Avatar
    Join Date
    Dec 2012
    Posts
    364
    Tuconots
    -4
    Wow guys good info. I honestly didn't think anything good was going to come out of this thread. Sorry the OP was a little unorganized. It was was an impulsive post. My MAIN concern with the CS degree was/is the availability of jobs. Basically I want to play it safe. I went into Physics originally because I was interested in it. Despite it being a good degree I realized that the amount of jobs available after graduation were pretty damn small. Almost none without a Masters.

    The most important thing for me is job security and availability and so far this thread has given me good feels for my choice.

    By chance did any of you double major or maybe have advice on a minor. It seems the most important thing is for me to get an internship or some kind. I will definitely look into it. This time around I am going to have a plan instead of just graduate as soon as possible.

    Last question, the last math class I took was Calculas 3 and Diff Eq. Despite barely passing, I do not remember ANYthing really. It has been years since I have to do any kind of calculus. Will this royally screw me? I mean it seems that the math required for comp sci is less calculus and more algrebra and trig. Should I hit the old calc book immediately or wut do?

  11. #11
    Registered User khalid's Avatar
    Join Date
    Dec 2012
    Posts
    10,539
    Tuconots
    31
    You will almost surely not need anything in calculus and certainly not anything from Diff Eq.

    The math you will encounter will be mathematical induction and logarithms for a course studying algorithms, and maybe some linear algebra stuff.

  12. #12
    Registered User Kharza-kzad's Avatar
    Join Date
    Dec 2012
    Posts
    1,081
    Tuconots
    6
    I can answer the math stuff for games. I'd say 90% of generalist math stuff in games is standard fare linear algebra. Vector, matrix, dot/cross products etc. The other 10% is calc for doing stuff like smooth stepping or energy transfer in physics or physical lighting.

    A few years ago some linear was good enough for graphics work but the math has gotten crazy lately. I look at greek symbols and squiggly lines and my brain turns to goo. However if I see the code I can usually work out what is going on, but often there is none, and squiggly greeky is all you have to look at.

    About jobs, fresh out of college is really popular right now in games. Game companies want young and inexperienced and easily exploited or so I hear.

  13. #13
    Samwise the Brave Traak's Avatar
    Join Date
    Dec 2012
    Posts
    364
    Tuconots
    -4
    Quote Originally Posted by Kharza-kzad View Post
    I can answer the math stuff for games. I'd say 90% of generalist math stuff in games is standard fare linear algebra. Vector, matrix, dot/cross products etc. The other 10% is calc for doing stuff like smooth stepping or energy transfer in physics or physical lighting.

    A few years ago some linear was good enough for graphics work but the math has gotten crazy lately. I look at greek symbols and squiggly lines and my brain turns to goo. However if I see the code I can usually work out what is going on, but often there is none, and squiggly greeky is all you have to look at.

    About jobs, fresh out of college is really popular right now in games. Game companies want young and inexperienced and easily exploited or so I hear.
    sounds good. studying physics really burned me out when it comes to math. as for being exploited, im down as long as im gettng paid

  14. #14
    Registered User
    Join Date
    Dec 2012
    Posts
    270
    Tuconots
    -1
    Quote Originally Posted by Traak View Post
    By chance did any of you double major or maybe have advice on a minor. It seems the most important thing is for me to get an internship or some kind. I will definitely look into it. This time around I am going to have a plan instead of just graduate as soon as possible.
    Minor or double major is useless. No one gives a shit if you have a minor in some other field, all they care about is how smart you are, how motivated you seem to be, and if you did an internship instead of flipping burgers. Far better to work on an open source project.

    I have never ever been asked for my grades/GPA let alone what other stuff I did in college. The only question relating to college in any fashion (even right out of college) was: Do you have a bachelor's in computer science? I could see some companies caring about grades if it is your first job out of college, but why would anyone care about a minor or double major?

  15. #15
    Registered User LennyLenard's Avatar
    Join Date
    Dec 2012
    Posts
    376
    Tuconots
    1
    Quote Originally Posted by Traak View Post
    sounds good. studying physics really burned me out when it comes to math. as for being exploited, im down as long as im gettng paid
    I wasn't going to reply to the thread as I didn't do the CS degree route (I did a BS in Bio, minor in Information Systems), and am self-taught, but I can say, unless you're 24 or something (since you're on the GI Bill I take it you're mid-late 20s minimum), you might want to reconsider that outlook. Without going too much into the background, I got my first game programming job working on a quake3/idtech3 project and was hired based on my HL1, HL2 and Q3 modding work. Pay was about $50k, but worked regularly 60-80 hrs/wk. No benefits, as I was officially a contractor for the first few years. Did get to do some international travel though on their dime. I've slept under my desk multiple times.

    I loved the shit out of it at the time, and it was a small team, so really felt like I was contributing (which I was, as one of two programmers at the start), but after about two years, it got tiresome. Pay slowly increased (never exceeded $60k/yr, but I didn't have a CS degree and it was a start-up and everyone was being paid on similar scales) and hours slowly decreased, but would still hit 50-60 hrs/wk for long stretches. I'm going to be turning 31 in the next week, and I can say I wouldn't take a "do over", but I definitely wouldn't do it again, starting again at this age.

    Though, perhaps I'm retarded, as I'm now indie/self employed, and making even less $ and working more hours...

    Most of the other programmers I ran into, very few are doing the same thing they were. Either they moved their way up to high level senior programmer/lead positions (much better pay, but even worse hours), a few went into high pay, short term consulting, and many have ditched the field and went into non game areas.

    As for general education, I did take calc I and II (failed calc II first time) at college (had algebras, geometry, stats and pre-calc in HS/MS), bio focused stats and number theory type of math (can't recall name) for ISYS. I've never had to do the really heavy math stuff (always used someone else's renderer and/or physics libraries, been able to muddle through those or find specific answers to specific problems online). Do use tons of algebra and geometry, with sprinklings of calc.
    Last edited by LennyLenard; 03-21-2014 at 04:21 PM.

  16. #16
    Samwise the Brave Traak's Avatar
    Join Date
    Dec 2012
    Posts
    364
    Tuconots
    -4
    First, thanks for sharing. You guys have really given me some good advice. I guess I was somewhat of a bio major as well. I was actually Medical Physics which is kind of like bio and physics degrees combined. I took 2 biology classes, 2 chems, 2 organic chems, a and P and a few others.

    It always seems like the people with real talent for coding are self taught. I guess it makes sense because they are self motivated to learn which a lot of college students arent. I really hope the things I learn in school arent just filler. I plan to give 110% of my focus and energy towards this.

    I guess I should add that I've done a little coding here and there. Basic HTML and Java. At one time I was making a text based game in Python but ended up moving on when I encountered problems trying to write my own chat room. I had planned on reading up on coding again before school but figured I'd give my head a rest until school. Maybe thats a bad idea I dunno.
    Last edited by Traak; 03-21-2014 at 06:29 PM.

  17. #17
    scientia potentia est Cad's Avatar
    Join Date
    Dec 2012
    Location
    Highland Park
    Posts
    9,788
    Tuconots
    49
    Don't fucking develop games, the pay is shitty and the hours are long and whatever you're picturing as the fun of being a "dev" is retarded bullshit. Play games in your spare time for fun (working on them isn't fun) and follow the $ into enterprise apps, consulting, database programming, etc. CS is fine (I have a CS degree).

    1. Don't be a long-term wage slave at some large faceless company. Get some experience and start consulting independently, and try to cut out the middleman in your consulting gigs. Companies are often willing to pay "consulting companies" inflated rates. Get in on those rates.

    2. Don't learn useless bullshit. Take every job with an eye to marketable skills. Never pigeonhole yourself on some niche product that you'll never be able to find a job using it again.

    3. Don't just learn design patterns and coding standards out of a book and think thats how coding works. Coding is about solving problems; knowing when to use patterns and when to come up with something yourself is why you will eventually get paid a lot. Any indian monkey can talk patterns.

    4. Stay away from fucking indians and asians. Especially when they are microwaving their food. You don't want to smell like that all day.

  18. #18
    Delicious Noodles Noodleface's Avatar
    Join Date
    Dec 2012
    Location
    MA
    Posts
    19,187
    Tuconots
    63
    Quote Originally Posted by Cad View Post
    4. Stay away from fucking indians and asians. Especially when they are microwaving their food. You don't want to smell like that all day.
    Also be weary of the indian's cubes. They don't like to wear shoes during the day.
    Noodleface#1412 - <Rerolled> US-Hyjal Horde - Noodleface

    Follow me on Twitch! - Streaming Rerolled minivan dad raids Friday nights 9PM EST and Saturday mornings 11AM EST!

  19. #19
    Registered User LennyLenard's Avatar
    Join Date
    Dec 2012
    Posts
    376
    Tuconots
    1
    Well you've had other real CS types already reply. I did also have some schooling (course on VAX basic and another C++ in HS), plus a year of C++ in college. Plus I've been tinkering with games all the way back to Tie Fighter with hex editor based ship editors. I am definitely not as strong a programmer or computer scientist as those with the degrees and training. I also have significant doubts I could get a job at a "real" place like EA or Ubisoft due to their use of specialists (I can however code, 3d model well enough that some of my pieces have made it into a shipped game and do most other things needed for games), really a jack of all trades. I also doubt I'd even get a second glance at a non gaming tech company. Though I've never tried.

    I wouldn't recommend this route to most people. It can be done, and as you said, self-motivation plays a big part of it, since you're outside the "normal tracks". In my case, I just love making games (I only play about 5 hours a week vs working on them 40+ even now). I love the blending and the interdisciplinary type skills that I need to know to do stuff with small (or solo) groups of people.

    I think if you want to be a programmer/cs type guy, who can handle any computer science type problems, stick with the CS degree, get an internship and do some kind of open source or shareable project (allow this to be more targeted towards your specific interest), and you'll have plenty of subfields to pick from. Avoid games unless you really love them (and more so, love making them, not just playing) since the industry tends to burn out all but the most dedicated/stupid.

  20. #20
    The White Knight Izo's Avatar
    Join Date
    Dec 2012
    Posts
    7,721
    Tuconots
    13
    2cs9uz5.jpg
    Komputah science?
    Quote Originally Posted by lurkingdirk View Post
    So if my kids come to church with me until they leave home, it's indoctrination?

  21. #21
    Janitor Tuco's Avatar
    Join Date
    Dec 2012
    Location
    Ann Arbor, MI
    Posts
    20,175
    Tuconots
    86
    Pretty much everything I'd say is covered in this thread.

    I'd also like to add that being a generic programmer is fine out of college, I'd recommend trying many different fields of programming to see what you want to specialize in. There's hugely diverse fields that all need talented programmers to get shit done whether it's database, web, user interface, embedded work etc, along with different industries like finance, medical, automotive, robotics etc. It's impossible to not have any experience in anything and decide what is best for you, so I'd recommend trying out a bunch of stuff.

  22. #22
    Janitor Tuco's Avatar
    Join Date
    Dec 2012
    Location
    Ann Arbor, MI
    Posts
    20,175
    Tuconots
    86
    Program execution errors that only happen when you disable your debugging code and infrastructure QQ

  23. #23
    Janitor Tuco's Avatar
    Join Date
    Dec 2012
    Location
    Ann Arbor, MI
    Posts
    20,175
    Tuconots
    86
    Protip, don't do this:
    Code:
    void SomeDataReader::someFunction()
    {
    
    while(true)
    {
    printf("lastRecordTime:%d\n", dataHolder.getLastData().getTime());
    
    *do stuff*
    
    }
    
    }
    do this:
    Code:
    void SomeDataReader::someFunction()
    {
    
    while(true)
    {
    if(dataHolder.size() > 0)
    printf("lastRecordTime:%d\n", dataHolder.getLastData().getTime());
    else
    printf("There's no records because for some fucking reason this routine started running just a smidge sooner or faster than it ever has before and now code that hasn't been looked at in over a year is now causing weird issues in your shit that are impossible to diagnose because every effort to diagnose them make this function run slower causing the problem to not appear I should just remove all threading from all code I write so I don't have to deal with these problems\n");
    
    *do stuff*
    
    }
    
    }
    *deep breath*

  24. #24
    Registered User
    Join Date
    Dec 2012
    Posts
    12,682
    Tuconots
    54
    Turn your debugger back on to slow the routine. This consultation will cost you $500k.

  25. #25
    scientia potentia est Cad's Avatar
    Join Date
    Dec 2012
    Location
    Highland Park
    Posts
    9,788
    Tuconots
    49
    If thats supposed to be a consumer thread getting stuff from a data queue thats populated asynchronously, then yea obviously you should check to make sure you got something from the data structure before attempting to operate on it. If you're making the assumption that you got something from the producer thread/queue (by not checking) then thats just bad programming

    Tip: If nothing is found (dataHolder.size == 0) sleep for a short period so you don't spam your logs full of shit, and your thread doesn't spin.

  26. #26
    Janitor Tuco's Avatar
    Join Date
    Dec 2012
    Location
    Ann Arbor, MI
    Posts
    20,175
    Tuconots
    86
    yeah I agree 100%. I was just pissed yesterday spending an hour tracking down a bug that occurred in a class that hasn't been touched in a year.

  27. #27
    Registered User
    Join Date
    Dec 2012
    Posts
    96
    Tuconots
    -1
    Also, don't be afraid to job hop every couple years. More than likely that is going to give you the biggest jump in pay and there are not very many shitty jobs in the software engineering space these days because good devs are such a commodity. If you are treated like shit, leave. It's incredibly easy to find another job...especially if you have any social skills to speak of. One other thing is to jump to consulting as soon as you can to get exposed to a lot of different technologies, companies, and more variations in the types of projects you will do.

    <- Graduated 10 years ago with a Math/Comp Sci Degree. Compensation started in the 40s. Now its in the 100s/200s.

  28. #28
    scientia potentia est Cad's Avatar
    Join Date
    Dec 2012
    Location
    Highland Park
    Posts
    9,788
    Tuconots
    49
    Or quit coding and go to law school like me.

  29. #29
    The Retarder lendarios's Avatar
    Join Date
    Dec 2012
    Location
    Miami, FL
    Posts
    3,097
    Tuconots
    -7000001
    Why would you do that cad?

  30. #30
    Registered User Celestein's Avatar
    Join Date
    Dec 2012
    Posts
    618
    Tuconots
    11
    Quote Originally Posted by lendarios View Post
    Why would you do that cad?
    Trading one of the best career choices for one of the worst, he obviously likes to run it hard mode.

  31. #31
    scientia potentia est Cad's Avatar
    Join Date
    Dec 2012
    Location
    Highland Park
    Posts
    9,788
    Tuconots
    49
    Quote Originally Posted by Celestein View Post
    Trading one of the best career choices for one of the worst, he obviously likes to run it hard mode.
    Yes making 3X as much is clearly a handicap.

    Being qualified to do IP law is ez mode

  32. #32
    Coat-hanger Dick Khane's Avatar
    Join Date
    Dec 2012
    Posts
    9,112
    Tuconots
    84
    Quote Originally Posted by Cad View Post
    Yes making 3X as much is clearly a handicap.

    Being qualified to do IP law is ez mode
    3x as much as who Cad? I mean yes, lawyers can be very well paid, but so can software developers.

  33. #33

  34. #34
    Registered User Celestein's Avatar
    Join Date
    Dec 2012
    Posts
    618
    Tuconots
    11
    Quote Originally Posted by Khane View Post
    3x as much as who Cad? I mean yes, lawyers can be very well paid, but so can software developers.
    On top of that, it's supply vs demand. There's 10~ lawyers to every 1 job, and 5~ jobs to every 1 developer. There's a high upwards pressure on developers salaries, and a strong downward pressure on lawyer compensation. Developers now make more than doctors over a life-time(along with less stress, better work environments, etc).

    As a lawyer I don't doubt that you make more than the average software developer at your age, but you're probably not comparing apples to apples either(you'd compare a MS or PhD in CS holder with 5-10(I'm somewhat guessing your age here) years experience to yourself...if you were making 3x as much...you're making 7 figures, so kudos!). Honestly, I've thought about completing my JD to do the same thing Cad, but the numbers don't add up for it to make sense, it's a net loss of life-time earnings(for me).

    Though it depends on where you're starting. If you went BS -> JD then yeah, that's likely a net lifetime gain in IP law. PhD/JD is just a large loss.
    Last edited by Celestein; 05-05-2014 at 07:45 PM.

  35. #35
    Registered User TragedyAnn's Avatar
    Join Date
    Oct 2013
    Posts
    225
    Tuconots
    1
    Ok so I am also majoring in CS and I have friends who are self taught and basically tell me I'm wasting my money getting a 4 year CS degree from a university.

    So I guess I am curious if they're right? What about these community colleges and their associates degrees in computer science?

    Is it a matter of getting paid more with a 4 year degree?

  36. #36
    Registered User
    Join Date
    Dec 2012
    Posts
    2,581
    Tuconots
    -19
    Quote Originally Posted by TragedyAnn View Post
    Ok so I am also majoring in CS and I have friends who are self taught and basically tell me I'm wasting my money getting a 4 year CS degree from a university.

    So I guess I am curious if they're right? What about these community colleges and their associates degrees in computer science?

    Is it a matter of getting paid more with a 4 year degree?
    Its a matter of competing against people who do have a degree. An employer knows nothing about you when deciding to interview you. If his choice is some nobody with a degree and some nobody without a degree, guess who is going to get picked? Of course, if you have some projects that arent trivial and can be presented on your cv, you stop being a nobody.

  37. #37
    Coat-hanger Dick Khane's Avatar
    Join Date
    Dec 2012
    Posts
    9,112
    Tuconots
    84
    Quote Originally Posted by TragedyAnn View Post
    Ok so I am also majoring in CS and I have friends who are self taught and basically tell me I'm wasting my money getting a 4 year CS degree from a university.

    So I guess I am curious if they're right? What about these community colleges and their associates degrees in computer science?

    Is it a matter of getting paid more with a 4 year degree?
    We had a lengthy discussion about this "Programming Bootcamps" thread. Everyone pretty much agrees you do not need a degree in the development field. Some people feel it's worthwhile to help break into the field and set yourself apart.

    I am a software architect and hiring manager with 10 years experience in the field and I absolutely never look at the schooling section of a resume, it's completely irrelevant to me. But there certainly are some companies out there that require at least a BS in a development related study. In my personal opinion only large corporations who's hiring practices are dictated by the HR department instead of the software development department require a degree and those are companies I typically wouldn't want to work for.

    In my opinion yes, you are wasting your time and money. You'd learn more, learn faster, and be able to specialize in something you truly enjoy if you taught yourself instead.

  38. #38
    Registered User
    Join Date
    Dec 2012
    Posts
    12,682
    Tuconots
    54
    Quote Originally Posted by TragedyAnn View Post
    Ok so I am also majoring in CS and I have friends who are self taught and basically tell me I'm wasting my money getting a 4 year CS degree from a university.

    So I guess I am curious if they're right? What about these community colleges and their associates degrees in computer science?

    Is it a matter of getting paid more with a 4 year degree?
    Are these people gainfully employed on solid career trajectories? It is possible, or should I say it was possible, to get a good job with no degree and just some basement code tinkering. I believe that day is mostly passed unless you're willing to gamble on working for a start up for peanuts. You still need to get your foot in the door at HR to even get your resume on someone's desk. You can't just say "I have experience. Trust me." with a few novelty apps and expect it to carry the same weight as a 4 year degree from a university. Sure once you're already in the field, have a job or three and worked on real world projects that have shipped it doesn't matter. Until you have those bullet points it means the world.

  39. #39
    Coat-hanger Dick Khane's Avatar
    Join Date
    Dec 2012
    Posts
    9,112
    Tuconots
    84
    Quote Originally Posted by Tenks View Post
    Are these people gainfully employed on solid career trajectories? It is possible, or should I say it was possible, to get a good job with no degree and just some basement code tinkering. I believe that day is mostly passed unless you're willing to gamble on working for a start up for peanuts. You still need to get your foot in the door at HR to even get your resume on someone's desk. You can't just say "I have experience. Trust me." with a few novelty apps and expect it to carry the same weight as a 4 year degree from a university. Sure once you're already in the field, have a job or three and worked on real world projects that have shipped it doesn't matter. Until you have those bullet points it means the world.
    I can assure you, plenty of non start up companies hire self taught developers every day of the week. My younger brother just got his first job in the field after teaching himself C#. He is making almost 80k/year.

    It's fair to say a degree can help get your foot in the door but you can do side work and consulting gigs to get those projects on your resume. It's a lot easier than one may think to get real world experience while teaching yourself.

  40. #40
    Registered User TragedyAnn's Avatar
    Join Date
    Oct 2013
    Posts
    225
    Tuconots
    1
    Hm ok, interesting. Thanks all.

    One more question: if I were to start on the path of self-teaching, what exactly would I need to learn?
    When I see jobs posted for "software programmer/analyst" what should the applicant have knowledge of? Does it depend?

    I'm just frustrated with all the classes right now. I doubt I'll give up on the degree, but I WAS curious what the general consensus was regarding CS degrees.
    so thanks for the info.

    EDIT: NVM. found the bootcamps thread. thanks lol
    Last edited by TragedyAnn; 05-05-2014 at 06:41 PM.

  41. #41
    Janitor Tuco's Avatar
    Join Date
    Dec 2012
    Location
    Ann Arbor, MI
    Posts
    20,175
    Tuconots
    86
    Go find statistics for hire rates for 4yr degree holding programmers vs non-4yr degree programmers. I'd expect there's a massive disparity.

    Even though there are a ton of successful self-taught programmers you're drastically cutting down your opportunities by not getting a four year degree. And even if you land a decent job, once you move on for that job that lack of a degree will still hurt you.

  42. #42
    Registered User
    Join Date
    Dec 2012
    Posts
    417
    Tuconots
    1
    I just saw this today and thought it was relevant.

    88d3bd88-b676-11e3-aabb-22000a901256-large.jpeg

    Last month for me it was was Google and Amazon. The Amazon one was for a senior position and offered to fly me out to Seattle or Vegas to interview with them. The Google one specifically found me through my alma mater and had an interest in my current work. I went into it more in the bootcamp thread but a lot of large companies even limit to CS degrees from specific colleges. Before I listed off tech companies but even Walmart mentions a similar philosophy. A job similar to one I was being recruited for by Walmart a while ago Silicon Valley ECommerce Software Engineering jobs - Walmart Labs Senior Software Engineer Generalist at Walmart
    lists 'BA/BS from a top school in Computer Science or a related technical discipline'

    You can get a feel for the attitude some people out there have for self taught vs degrees at Coding Bootcamps Already 1/8th the Size of CS Undergraduates - Slashdot

    As far as the lawyer comparison I'd say software development offers the opportunity to make it big at an entry level. Do new JDs have much of a chance at make partner/millions just a year or two out of school? My last job was at a startup and we received options at ~$1.50 . A major company bought us out and we could buy shares worth $100+ for ~$1.50 each. I know several people that made their first million and aren't even 30 yet... This isn't the norm and our team was mainly top graduates from a specific university.

    As diverse as the jobs are that are out there for software development, so are the expectations those jobs have on peoples background .

  43. #43
    Coat-hanger Dick Khane's Avatar
    Join Date
    Dec 2012
    Posts
    9,112
    Tuconots
    84
    As someone who's been in the industry for a long time I'll never agree with you guys. Most of the developers I know are self taught and they are excellent at what they do. Most self taught developers are better at handling new technology and finding ways to solve problems than programmers who learned through traditional schooling because they don't get caught up in the mantra their professors tried to instill in them or stick to the (most likely) ancient technologies they learned at a university.

    I will agree that the degree can make it easier to land that first job but after that it doesn't matter at all, it's completely inconsequential. Hachima comes from a different world in software development. What he was exposed to and had the opportunity to work with is far from the norm, he is either being modest or just doesn't understand that he is the top .01% of developers who got into and experienced a program like those offered at MIT. It's a completely different world than your normal CS program at a typical college or university.

    You're talking about spending money and 4 years of your life vs teaching yourself the skills you need in less than half that time and starting to work and earn money (even if only modest freelancing work) right away. I'm fairly successful at 31 years old making well over six figures and as someone who hires and has done so for the better part of the last 6 years I can honestly say if I could go back and do it all again I wouldn't have gone to school for a degree in software. I would have gotten a degree in business management/entrepreneurship and taught myself development skills on the side.

    This is a field where if you are truly interested in being a developer and put in the time you can excel without ever needing a formal degree. I see it every day when I go to work and with all the people I've met in the field over the years.

    TragedyAnn, in your specific case I wouldn't recommend quitting school. You've put the time in already and just because you are in school doesn't mean you can't teach yourself as a compliment to your schooling as well. You've already invested time and money into getting the degree so it's probably in your best interest to finish and get that piece of paper.
    Last edited by Khane; 05-05-2014 at 10:49 PM.

  44. #44
    Registered User
    Join Date
    Dec 2012
    Posts
    270
    Tuconots
    -1
    Meh, Amazon offers to fly everyone out. I strongly suggest working at Google before Amazon.

    I think there is a general continuum:

    Low experience: Where you went to school matters, because there isn't much else to judge on. Did you do an internship? Do you have code people can actually look at? Yay, you'll get a job. If you went to a boot camp and that's it and don't have a large amount of stuff you've actually built then fuck off. If you went to a top tier school, it will be easier to get a "good" job immediately.

    Medium experience: No one gives a shit where you went to school anymore or what your grades were. What cool shit have you done? What can you do that others can't?

    High experience: People /especially/ don't give a shit about your school or grades, but do start to dig more into leadership and mentoring ability or ability to be an architect/project lead on a large team.

    I know plenty of people that went to great schools like Caltech and MIT and then didn't do much and lots of people that went to "bad" schools and are now millionaires. Does a 4 year degree have value? Sure, especially if the alternative is a bootcamp w/ limited shit to show for yourself. But the hard part is getting the foot in the door. In 3-4 years no one will give a shit what school you went to, they want to know if you are smart and where you fall on the badass coder metric.

  45. #45
    Registered User
    Join Date
    Dec 2012
    Posts
    12,682
    Tuconots
    54
    I've heard nothing but bad things about working at Amazon. Pretty apparent their idea is to just grind out wide-eyed developers with 60+ hr workweeks until they quit.

  46. #46
    Registered User
    Join Date
    Dec 2012
    Posts
    417
    Tuconots
    1
    Quote Originally Posted by Tenks View Post
    I've heard nothing but bad things about working at Amazon. Pretty apparent their idea is to just grind out wide-eyed developers with 60+ hr workweeks until they quit.
    With a company that big, people's experience will vary greatly depending on what group you are part of and even what team you are in within that group. If its a smaller company it's easier to make generalizations for the company, but even if there are just a handful of teams it can still come down to what team you are on and one persons experience will vary greatly from another.

  47. #47
    Registered User
    Join Date
    Dec 2012
    Posts
    270
    Tuconots
    -1
    Quote Originally Posted by Hachima View Post
    With a company that big, people's experience will vary greatly depending on what group you are part of and even what team you are in within that group. If its a smaller company it's easier to make generalizations for the company, but even if there are just a handful of teams it can still come down to what team you are on and one persons experience will vary greatly from another.
    To a degree this is a true, but disregarding all the discontent Amazon devs doesn't seem appropriate either. My old CEO used to mention that his favorite recruiting spot was hanging out near Amazon because everyone was so desperate for a lifeline out. I've known 20+ people that work or have worked there, and general consensus seems to be it is better than working at a shit company but not on the same level as Google, Facebook, or Microsoft. They pay well but at their heart they are a retailer not a software business and that can grate on people.

    That said, it certainly doesn't hurt to have on the resume and some people like it so YMMV. I do think you'd be crazy to pick Amazon over Google though unless the compensation difference was immense or already bought a house somewhere that made Amazon a much better commute.

  48. #48
    Samwise the Brave Traak's Avatar
    Join Date
    Dec 2012
    Posts
    364
    Tuconots
    -4
    Well all my credits transfered so basically the only classes I will be taking for this degree are comp sci. Because I am getting my school paid for through the VA, I have to be enrolled full-time to recieve all the benefits. The catch is that I can only take classes that are in my degree plan. There is a sophmore comp sci class that is the prereq for all other comp sci courses and it is not offered during the summer. I was pretty bummed because this would require me to basically pay out of pocket this fall because I would only be able to take one class. This would also set me back a semester from when I planned on graduating. Thankfully there is a solution. I can test out of that class by taking the final at the end of the summer. I was given last years final and it basically a bunch of questions on interpetting different code samples in Java and predicting the out given certain inputs. It actually looked kinda easy, I've done a few things in python so alot of the concepts I know I just need to use the java syntax instead. I was also given the text book for free which was nice. I am working through it right now.

    Assuming I test out of this thing I will be taking all the sophmore comp sci classes required my first semester (this fall) which are OO Programming (c++), discrete math for cs (no idea), data structures, and machine programing and Machine Programming & Organization. These are all 4 hour credit classes so I am kinda nervous about the work load. I've heard data structures is an intense class but thats just from other students. I've done 16-18 hour semesters and they were not fun. Pray for me.
    Last edited by Traak; 05-07-2014 at 04:18 AM.

  49. #49
    Registered User
    Join Date
    Dec 2012
    Posts
    495
    Tuconots
    0
    Quote Originally Posted by Tenks View Post
    I've heard nothing but bad things about working at Amazon. Pretty apparent their idea is to just grind out wide-eyed developers with 60+ hr workweeks until they quit.
    Can vouch for this. Amazon doesn't pay that well and the perks are mostly non-existant, specially when you compare to others in the field. I love Amazon as a company, but to be fair, Amazon IS Walmart of the internet, so you're working for e-Walmart.

  50. #50
    Janitor Tuco's Avatar
    Join Date
    Dec 2012
    Location
    Ann Arbor, MI
    Posts
    20,175
    Tuconots
    86
    Quote Originally Posted by Traak View Post
    Assuming I test out of this thing I will be taking all the sophmore comp sci classes required my first semester (this fall) which are OO Programming (c++), discrete math for cs (no idea), data structures, and machine programing and Machine Programming & Organization. These are all 4 hour credit classes so I am kinda nervous about the work load. I've heard data structures is an intense class but thats just from other students. I've done 16-18 hour semesters and they were not fun. Pray for me.
    Unless you're some kind of genius or know this shit already or your college is irresponsibly easy your academic advisor should be taken out and shot. And that's even if you got a 4.0 in the prereq you're trying to skip. Those are all hard hitting CS classes.

    I'd recommend you try to learn the items on the OO programming syllabus ahead of time using online resources. Having a good knowledge of classes, polymorphism, inheritance, templates, points etc will help both that class and data structures which hopefully in C++ because pointers. Data Structures is sort of a realization of OO programming. OO Programming is more of a way of thinking about how to solve problems, data structures are specific ways to solve specific problems.

    Those classes specifically (OOP, Discrete math, data structs and assembly shit) are the core of a CS degree and the classes that make someone a computer scientist. And by that I mean a normal uneducated person learning them will literally change the chemistry of their brain to make them be able to think like a computer. Doing them all in one semester will be awful.
    Last edited by Tuco; 05-07-2014 at 02:57 PM.

  51. #51
    Registered User
    Join Date
    Dec 2012
    Posts
    12,682
    Tuconots
    54
    Quote Originally Posted by Obtenor View Post
    Can vouch for this. Amazon doesn't pay that well and the perks are mostly non-existant, specially when you compare to others in the field. I love Amazon as a company, but to be fair, Amazon IS Walmart of the internet, so you're working for e-Walmart.
    I also heard Amazon was willing to pay developers a months salary if they quit because some bullshit about weeding out people who didn't actually want to be there.

  52. #52
    Delicious Noodles Noodleface's Avatar
    Join Date
    Dec 2012
    Location
    MA
    Posts
    19,187
    Tuconots
    63
    Good luck with assembly, fuck that shit. Also fuck discrete math. I absolutely hated that bullshit class.
    Noodleface#1412 - <Rerolled> US-Hyjal Horde - Noodleface

    Follow me on Twitch! - Streaming Rerolled minivan dad raids Friday nights 9PM EST and Saturday mornings 11AM EST!

  53. #53
    Janitor Tuco's Avatar
    Join Date
    Dec 2012
    Location
    Ann Arbor, MI
    Posts
    20,175
    Tuconots
    86
    Discrete Math: paying out the ass to play puzzle games in college.

  54. #54
    Samwise the Brave Traak's Avatar
    Join Date
    Dec 2012
    Posts
    364
    Tuconots
    -4
    hmm maybe ill only take 3 of them then. ya generally you take 2 one semester and 2 the other. again the VA is really putting my in a pinch with their very strict requirements to be considered full time. they wont let me double major or pick up a minor either. i cant really complain because i am getting paid to goto school but damn they arent making this easy for me. worse case scenario i quit my job (i can afford not to work) and just live at the library.

  55. #55
    Registered User
    Join Date
    Dec 2012
    Posts
    495
    Tuconots
    0
    I'd say one of the most important classes when doing a CS degree is Algorithms (besides the actual programming classes). If you don't know that the code you built is running at 2^n and sure it works for your small test set and then bombs when running live then you're an idiot. Knowing why/when you should transform an algorithm running on O(n^4) to O(logn) or similar will be extremely helpful in your interviews and actual work. And this is not usually something you pick up by 'yourself'

  56. #56
    The Retarder lendarios's Avatar
    Join Date
    Dec 2012
    Location
    Miami, FL
    Posts
    3,097
    Tuconots
    -7000001
    Data structures plus discrete math can be a hard combination, but they complement each other.

    Here is an actual syllabus of discrete math from my alma mater.

    Sets and Operations on Sets, Relations, Equivalence Relations, Functions, Cardinality,

    • Logic and Arguments, Mathematical Induction & Recursion, Combinatorics, Combinatorial Identities & Binomial Theorem
    • Graphs (Directed & Undirected), Isomorphism of Graphs, Paths, Adjacency Matrices, Euler Paths, Four Color Problem, Planar Graphs, Trees, Traversal of Trees
    • Boolean Algebras, Disjunctive Normal Form, Minimization of Boolean functions (Karnaugh)


    Now Data structures

    • Be familiar with basic techniques of algorithm analysis
    • Be familiar with writing recursive algorithms
    • Master the implementation of linked data structures such as linked lists and binary trees
    • Be familiar with advanced data structures such as balanced search trees, hash tables, priority queues and the disjoint set union/find data structure
    • Be familiar with several sub-quadratic sorting algorithms including quicksort, mergesort and heapsort
    • Be familiar with some graph algorithms such as shortest path and minimum spanning tree
    • Master the standard data structure library of a major programming language (e.g. java.util in Java 1.2)
    • Master analyzing problems and writing program solutions to problems using the above techniques
    • Algorithms - What they are and what are their time and space complexities. Big-Oh notation. Computation of complexities of an algorithm.
    • Lists, Stacks, Queues, Trees, binary search trees, AVL trees, B-trees.
    • Hash Tables, Binary heaps, heapsort,
    • Sorting Algorithms: Insertion sort, Shellsort, mergesort, quicksort, bucket sort. Lower bounds for sorting.
    • Disjoint set UNION-FIND algorithm, Graph Algorithms: Minimum spanning tree, shortest path algorithms.


    Some how they do complement each other. But it is the semester where you realize if you like programming or not.
    You will do fun things like,
    • Finding the shortest route on a maze.
    • Create like 5 different sorting algorithms.
    • Create a tic tac toe that never loses.
    • Implement search algorithms.
    • Induction. probably the most useful tool ever in programming.


    The difference between self taught and traditional learning, can be best compare to a doctor and a nurse. when training a doctor, the first years are taught from the ground up, Cells, tissues, compounds, reaction of cells and tissues to compounds, how the cells interact with each other. A lot of under the hood items, and then they go into the practical and most visible portions of medicine. A nurse training briefly focuses on the inner workings of the cells and mostly on the practical and visual aspect of medicine. The same can be said about self taught vs traditional. Self taught only knows what he has forced himself to learn, that that is very specific, and most time it is not very deep the knowledge. You just have to pick the correct technology to become specific at.
    Last edited by lendarios; 05-07-2014 at 06:44 PM.

  57. #57
    Janitor Tuco's Avatar
    Join Date
    Dec 2012
    Location
    Ann Arbor, MI
    Posts
    20,175
    Tuconots
    86
    I mostly agree with what Lendarios says, but I'd caution against carrying the nurse/doctor comparison too far. Medical doctors go through a decade of intense education and training in ways that require an expensive and formal medical school (cadavers n' shit, residency, learning information not readily available on the internet etc). Nurses go through a subset of this.

    Computer science undergrads go through a couple years of education that can easily be done out of school if you have the drive and access to the internet. Even the most obscure and academic parts of an compsci degree (discrete math, design patterns, functional programming etc) are enumerated in detail with youtube vids, wikipedia etc. And in the end, both college grads and self-taught programmers compete for the same positions, just college grads have an easier time getting into a lot of positions.
    Last edited by Tuco; 05-07-2014 at 07:16 PM.

  58. #58
    Coat-hanger Dick Khane's Avatar
    Join Date
    Dec 2012
    Posts
    9,112
    Tuconots
    84
    All the stuff you guys are mentioning is great knowledge if he's going into a field that is heavy on math (like financials). Obviously he doesn't know where he'll be seeking employment yet so it's good to know. However, if he doesn't go into a math heavy field all those skills will be forgotten 6 months after college because he literally will never use that shit.

    The only thing I remember from all my college CS math courses is the law of Modus Tollens and binary. I feel bad for all you guys who still work with unmanaged code and ancient programming languages where you actually have to do those bothersome tasks (like allocating and de-allocating memory) yourself.

  59. #59
    Janitor Tuco's Avatar
    Join Date
    Dec 2012
    Location
    Ann Arbor, MI
    Posts
    20,175
    Tuconots
    86
    Managed code makes me nervous and frightened.

  60. #60
    Registered Dragonlord Deathwing's Avatar
    Join Date
    Dec 2012
    Posts
    6,564
    Tuconots
    31
    Labeling memory management as a "bothersome task" is a huge mistake.

  61. #61
    Janitor Tuco's Avatar
    Join Date
    Dec 2012
    Location
    Ann Arbor, MI
    Posts
    20,175
    Tuconots
    86
    Quote Originally Posted by Deathwing View Post
    Labeling memory management as a "bothersome task" is a huge mistake.
    Yeah I was looking forward to Khane's reply to Lendarios', but I didn't expect him to so readily prove Lendarios' point about the mentality of a nurse vs a doctor.

  62. #62
    Coat-hanger Dick Khane's Avatar
    Join Date
    Dec 2012
    Posts
    9,112
    Tuconots
    84
    You guys kill me. It's good to know about things like Garbage Collection in managed code but you really shouldn't fuck with the way the CLR operates (in .NET) unless you absolutely have to. Memory management in C++ is necessary but it's a goddamn pain in the ass, so yes it is bothersome. I know you understand the difference in what I'm talking about here.

  63. #63
    Registered Dragonlord Deathwing's Avatar
    Join Date
    Dec 2012
    Posts
    6,564
    Tuconots
    31
    I got the impression you were advocating someone not even bother learning it.

    Ever since Java took away pointers, I'm wary of giving up more control to the language, even if that control is annoying. The more I know, the more I can do, the better.

  64. #64
    Janitor Tuco's Avatar
    Join Date
    Dec 2012
    Location
    Ann Arbor, MI
    Posts
    20,175
    Tuconots
    86
    .NET's memory management is amazing until you try to stress your system in ways .NET doesn't like.

    GC.Collect();

    One .NET project I've worked on runs image processing on thousands of massive images and allows viewing of them and the image processing outputs.

    GC.Collect();

    What happens when you try to open too many?

    GC.Collect();

    You run into weird issues where the more you try to manage the huge amounts of memory you need.

    GC.Collect();

    Any kind of attempt to figure out ways to work around it is met with stiff resistance from the .NET community.

  65. #65
    Coat-hanger Dick Khane's Avatar
    Join Date
    Dec 2012
    Posts
    9,112
    Tuconots
    84
    Sounds like bad code Tucbro.

  66. #66
    Samwise the Brave Traak's Avatar
    Join Date
    Dec 2012
    Posts
    364
    Tuconots
    -4
    The amount of certs and jobs out there for CS major is really promising. I cannot believe how big this field is. I mean, dont get me wrong, I knew it was big especially when you consider IT as part of the field but damn. Sun alone offeres dozens and dozens of java certs and other things. Is there any cert that you guys recommend. Obviously the cert is just a piece of paper ultimately and your knowledge and experience will trump it but it definately cant hurt to have a few.

  67. #67
    Coat-hanger Dick Khane's Avatar
    Join Date
    Dec 2012
    Posts
    9,112
    Tuconots
    84
    Certifications in things like Java (i.e. software, not hardware) are generally not worth the money. They tend to be very expensive and while having it can help, it doesn't help enough to make it worth the money you're spending on the cert in my experience. There is no detriment to getting them, so if you have the disposable income go for it, but if you don't I would suggest saving your money.

  68. #68
    Registered User Celestein's Avatar
    Join Date
    Dec 2012
    Posts
    618
    Tuconots
    11
    The Java, and C certificates in my experience are popular at banks, though outside banks I've never seen them...ever(and functional languages are slowly eating the financial district anyways...if you really wanted a job at a big bank for any reason, learn Haskell, Ocaml, or Clojure) .

  69. #69
    Janitor Tuco's Avatar
    Join Date
    Dec 2012
    Location
    Ann Arbor, MI
    Posts
    20,175
    Tuconots
    86
    Why are functional languages becoming popular at financial institutions?

  70. #70
    Registered User Celestein's Avatar
    Join Date
    Dec 2012
    Posts
    618
    Tuconots
    11
    Mostly good domain fit(math-like languages for huge math problems), and dead-simple yet powerful parallel and concurrent models(particularly things like STM, which is very useful for transaction heavy loads like those banks deal with).

    Only exception being the high-frequency-trading guys, that's almost exclusively C or hand-written assembly, when femto-seconds matter!


    edit: Probably some social elements too, I remember an article from Google, about some of their code submission tests(basically, submit anything you want, in any language), and they broke it down by language vs call-back rate. Clojure, Haskell, LISP, etc had near 100% callback rates, and javascript/java/ruby basically had the worst at <10%. The hypothesis being that the very high learning curve for FP at the beginner level means that FP are a self-selecting group that selects towards the very top of the spectrum.
    Last edited by Celestein; 05-08-2014 at 04:54 AM.

  71. #71
    Registered User
    Join Date
    Dec 2012
    Posts
    417
    Tuconots
    1
    Memory management in C# can be important and requires an understanding of the GC and also computer hardware.

    Take the program

    Code:
    static void Main(string[] args)
            {
                int[] ints = new int[4];
                Stopwatch s = new Stopwatch();
                s.Start();
                Parallel.For(0, ints.Length, x =>
                {
                    for (int i = 0; i < 1000000000; i++)
                    {
                        ints[x]++;
                    }
                });
                s.Stop();
                Console.WriteLine(s.ElapsedMilliseconds);
                Console.ReadKey();
            }
    vs

    Code:
    private static void Main(string[] args)
            {
                Stopwatch s = new Stopwatch();
                int buffer = 16;
                int[] ints = new int[4 * buffer];
                s.Start();
                Parallel.For(0, ints.Length / buffer, x =>
                {
                    for (int j = 0; j < 1000000000; j++)
                    {
                        ints[x * buffer]++;
                    }
                });
                s.Stop();
                Console.WriteLine(s.ElapsedMilliseconds);
                Console.ReadKey();
            }

    The first version takes 3100ms to run, the second one takes 1600ms to run (optimized code on). One key reason is by not getting CPU cache misses on the second version by letting each thread have its own cache line to work with. I also had to move the Stopwatch instantiation before the array instantiation, otherwise it was actually slower and took 4600 ms. I can also leave the Stopwatch being instantiated at the same spot, but add a int[] junk = new int[1]; junk[0] = 0; before the actual array and get the same faster results. It kind of demonstrates the affects of locality of references at Tips for Improving Time-Critical Code This is where you need a solid understanding of data structures/memory allocation is needed. I'd say the majority of C# developers out there that don't understand things at that level and don't need too and have great high paying jobs too. At the same time there is process intensive,multithreaded code that does need that level of optimization but people that do get into that stuff usually study and learn it on their own/on the job working on existing code. If you are doing web development you aren't going to be focusing on these things but following other principles like js at the bottom, css at the top, bundling/minifying sprite sheets etc.

    Plenty of areas to specialize in out there, a CS degree will give you a good well rounded foundation for whatever you choose to focus on imo though.

  72. #72
    Registered User
    Join Date
    Dec 2012
    Posts
    12,682
    Tuconots
    54
    Managed code and unmanaged code both have their places. I cannot ever understand why so many developers think it is one or the other. If I'm doing stuff that is a better fit to be written in C then I'll write it in C. If I'm doing stuff that is better fit in Java I'll write it in Java. Developers hold way, way too hard onto biases instead of just selecting the appropriate tool from my experience. Not every block of code is required to be written in the fastest. most efficient manner especially if it hamstrings readability.

    Just look at all the re-writes and re-do's in the Hadoop project lately. It was originally (mostly) pure Java and now more and more of it is being re-written in C/++ and JNI'd up. You can have both.

  73. #73
    Janitor Tuco's Avatar
    Join Date
    Dec 2012
    Location
    Ann Arbor, MI
    Posts
    20,175
    Tuconots
    86
    Quote Originally Posted by Hachima View Post
    I also had to move the Stopwatch instantiation before the array instantiation, otherwise it was actually slower and took 4600 ms. I can also leave the Stopwatch being instantiated at the same spot, but add a int[] junk = new int[1]; junk[0] = 0; before the actual array and get the same faster results.
    Seeing how people avoid cache hits and align data sometimes cracks me up.

    Since this is a general compsci/software thread I'll repeat the oft spoken advice that you should very rarely attempt to optimize your code at a low level first. Make the code legible, well architected and straightforward (if possible) and if you have a time critical system use a profiler to figure out where the real hogs are. And the answer is probably to redesign your algorithm, narrow your search space etc. But if you do get to a point where you absolutely have to optimize the way you index an array it can be a real joy as a software developer and you'll have to know and learn some very important details of low level programming, memory management etc. You'll pick up cool stuff like what Hachima showed, and evil stuff like
    Fast inverse square root - Wikipedia, the free encyclopedia
    Code:
    float Q_rsqrt( float number )
    {
    	long i;
    	float x2, y;
    	const float threehalfs = 1.5F;
     
    	x2 = number * 0.5F;
    	y  = number;
    	i  = * ( long * ) &y;                       // evil floating point bit level hacking
    	i  = 0x5f3759df - ( i >> 1 );               // what the fuck?
    	y  = * ( float * ) &i;
    	y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
    //      y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed
     
    	return y;
    }
    Quote Originally Posted by Tenks
    Managed code and unmanaged code both have their places. I cannot ever understand why so many developers think it is one or the other. If I'm doing stuff that is a better fit to be written in C then I'll write it in C. If I'm doing stuff that is better fit in Java I'll write it in Java. Developers hold way, way too hard onto biases instead of just selecting the appropriate tool from my experience. Not every block of code is required to be written in the fastest. most efficient manner especially if it hamstrings readability.
    This is 100% correct. Programmers who love one language and hate everything else are usually full of shit.

  74. #74
    Coat-hanger Dick Khane's Avatar
    Join Date
    Dec 2012
    Posts
    9,112
    Tuconots
    84
    I just don't like working with unmanaged code and after so much time not even touching anything but .NET I'd have to re-teach myself. Just not something I would want to do. I don't believe it's one or the other, I just don't want to leave my comfortable little world, and there really is no need for me to do so.

  75. #75
    Registered User
    Join Date
    Dec 2012
    Posts
    12,682
    Tuconots
    54
    Quote Originally Posted by Khane View Post
    I just don't like working with unmanaged code and after so much time not even touching anything but .NET I'd have to re-teach myself. Just not something I would want to do. I don't believe it's one or the other, I just don't want to leave my comfortable little world, and there really is no need for me to do so.
    Managed code is, I'd argue, a better default than unmanaged code. It allows for quicker delivery of product and never having to hunt down sometimes impossible to find leaks. But there are times where unmanaged code simply falls short and you *need* to manage to memory yourself. And for that I'm glad we have the tools to do that.

  76. #76
    Registered User Celestein's Avatar
    Join Date
    Dec 2012
    Posts
    618
    Tuconots
    11
    I'd agree. I typically start at a super abstract level(Clojure), move to java for a particular function if it's causing performance bottlenecks, and then move to C/OpenCL(depending on if the problem fits).

  77. #77
    Samwise the Brave Traak's Avatar
    Join Date
    Dec 2012
    Posts
    364
    Tuconots
    -4
    To keep this thread going I'll throw in another question. Did any of you guys do an internship. I plan on applying for a few for the following summer. I was thinking Blizzard or Square would be cool but honestly I'd go anywhere. Have you heard of any good places to try? Do any of you work for major companies who hire do internships? If so would you recommend your company? thanks for the info so far. didnt expect id get so much help here.

  78. #78
    Coat-hanger Dick Khane's Avatar
    Join Date
    Dec 2012
    Posts
    9,112
    Tuconots
    84
    Do you want to go into game development? I would suggest against that. It's literally the worst field you can get into as far as software development goes.

  79. #79
    Janitor Tuco's Avatar
    Join Date
    Dec 2012
    Location
    Ann Arbor, MI
    Posts
    20,175
    Tuconots
    86
    Quote Originally Posted by Khane View Post
    Do you want to go into game development? I would suggest against that. It's literally the worst field you can get into as far as software development goes.
    I agree with this, game development is the worst field.

    However, internships are incredibly valuable. If you apply for a bunch and only get one at a game company it's probably best to take it. Only take it if they compensate you reasonably well though ($14+ an hour). If they give you shit pay it means they probably won't give you enough attention for the experience to be valuable.

    I had three internships before graduation.

  80. #80
    Samwise the Brave Traak's Avatar
    Join Date
    Dec 2012
    Posts
    364
    Tuconots
    -4
    Naw I'd rather work for companies like Google but by the time i graduate I'll be in my 30s. realistically I think that might hurt me internship and jobwise. Who wants a 30 year old newb. As far as what I want to do eventually, havent thought of it too much. as long as it pays good and its in my field, I am interested. Of course the gamer in me has this fantasy of game development. I've heard alot of bad things about it but noone that is actually in the game industry. Not saying you guys havent been there but I do wonder why its so bad. I was told the same thing about joining the Army and for the most part I loved it.

    Whatever job I eventually land, there is no doubt in my mind I'll play with game development. Ever since my first RPG maker to Graal Online, to editing half-life maps, its always fascinated me.
    Last edited by Traak; 05-09-2014 at 03:49 AM.

  81. #81
    Samwise the Brave Traak's Avatar
    Join Date
    Dec 2012
    Posts
    364
    Tuconots
    -4
    I've also considered working for the NSA or other cyber-defensive/offensive agencys(anti hacker hackers?)
    Last edited by Traak; 05-09-2014 at 04:10 AM.

  82. #82
    Registered User
    Join Date
    Dec 2012
    Posts
    417
    Tuconots
    1
    My current job is for one of the comapnies on the list at 25 highest paying internships - Feb. 28, 2014 but my department doesn't have interns. I worked with someone that started as an intern at first and he had a good experience though. But that probably doesn't help you any haha. The top paying internships are certainly going to be very competitive to get into, but if you do well there is a good chance at getting hired and if you hate the company it still looks great on a resume I just suggest applying to a few that aren't on the top of your list and then apply to your dream pick after a few interviews etc. And heck maybe one of those turn out for you anyway. Even if its not a famous company, a good mentor that lets you explore your interests is going to give you a great start. If you don't have some type of internship experience, getting a first job is going to be very difficult unless you have some impressive personal portfolio projects to show off.

    I self taught myself C/C++ for my first job at a game company before doing any college work.. I also did an internship for a game company and was hired on full time and did that a while. Although fun, the pay/hour ratio wasn't worth it to pursue long term. Another internship I did was working with VisualStudio 2008 features when it wasn't even going to be released for beta for another year. Knowing my effort made a difference in something that many people enjoy can be just as rewarding to me as making the latest awesome game. Or those times when you get a breakthrough with an awesome solution to a difficult problem your company is trying to solve even though the end user will probably never know what it took to get their product working.
    Last edited by Hachima; 05-09-2014 at 04:09 AM.

  83. #83
    Registered User Celestein's Avatar
    Join Date
    Dec 2012
    Posts
    618
    Tuconots
    11
    If you're interested in game company internships, can PM me, my company usually has a few interns at any given time.

  84. #84
    Delicious Noodles Noodleface's Avatar
    Join Date
    Dec 2012
    Location
    MA
    Posts
    19,187
    Tuconots
    63
    I did a 1.5 year internship at my company (EMC) and they hired me afterwards. Absolutely would not have been hired here without an internship, and leaving with 1.5 years experience would have been great either way.

    The software engineering parts are pretty varied - really low level stuff (drivers, firmware) to web development.
    Noodleface#1412 - <Rerolled> US-Hyjal Horde - Noodleface

    Follow me on Twitch! - Streaming Rerolled minivan dad raids Friday nights 9PM EST and Saturday mornings 11AM EST!

  85. #85
    Registered User
    Join Date
    Dec 2012
    Posts
    12,682
    Tuconots
    54
    I had an internship just doing QA shit / automated scripts in Java from years 2-5 of my degree. Helped a ton. I probably learned more there about real-world software development than any classroom could teach. My degree mandated 1 year of full time internship but they kept me there as a part time intern during school time as well.

  86. #86
    Samwise the Brave Traak's Avatar
    Join Date
    Dec 2012
    Posts
    364
    Tuconots
    -4
    Quote Originally Posted by Celestein View Post
    If you're interested in game company internships, can PM me, my company usually has a few interns at any given time.

    I'd love to man but my only experience atm is some basic scripting in python and java. I hope by next summer I'll be somewhat useful. I really wish I had more experience because I am totally free this summer to do an internship :/

  87. #87
    Delicious Noodles Noodleface's Avatar
    Join Date
    Dec 2012
    Location
    MA
    Posts
    19,187
    Tuconots
    63
    You have failed your first lesson. Never turn down an internship.

    If someone is willing to give a dude with little skill a spot, take it.
    Noodleface#1412 - <Rerolled> US-Hyjal Horde - Noodleface

    Follow me on Twitch! - Streaming Rerolled minivan dad raids Friday nights 9PM EST and Saturday mornings 11AM EST!

  88. #88
    Janitor Tuco's Avatar
    Join Date
    Dec 2012
    Location
    Ann Arbor, MI
    Posts
    20,175
    Tuconots
    86
    If someone is willing to give a dude with little skill a spot, it's probably a scam!!

  89. #89
    Registered User Celestein's Avatar
    Join Date
    Dec 2012
    Posts
    618
    Tuconots
    11
    Quote Originally Posted by Tuco View Post
    If someone is willing to give a dude with little skill a spot, it's probably a scam!!
    We're one of the only game dev companies in the area(Buffalo,NY), we also have a strong relationship with the Buffalo Game Space(NPO dedicated to game dev education, which I'm also involved in). As such, we often offer internships to a lot of first/second year students as an educational opportunity to get involved in the business. Those ones specifically are lower paid. Minimum wage if they "work", unpaid is it's solely educational(i.e. they'll basically just be shadowing someone), and for senior/graduating interns we pay competitive $15/~.

    So in our particular case, we often deal with low-skill interns as a way of giving back to the community here. Though I'd say you're probably generally correct

  90. #90
    Registered User
    Join Date
    Dec 2012
    Posts
    12,682
    Tuconots
    54
    Man I quit Best Buy and moved to my internship making $14.50 the day I started. I thought I was living high on the fucking hog. I think I was making like $8.25 at Best Buy or some shit.

  91. #91
    Janitor Tuco's Avatar
    Join Date
    Dec 2012
    Location
    Ann Arbor, MI
    Posts
    20,175
    Tuconots
    86
    Quote Originally Posted by Tenks View Post
    Man I quit Best Buy and moved to my internship making $14.50 the day I started. I thought I was living high on the fucking hog. I think I was making like $8.25 at Best Buy or some shit.
    Yeah I went from like $7 an hour at a school lab tech job to around the same for an internship. I'm extremely frugal and didn't blow my money but I was super hyped to make a living wage for the first time, heh.

  92. #92
    Registered User
    Join Date
    Dec 2012
    Posts
    12,682
    Tuconots
    54
    Making that much money let me pay for my next quarter of college without loans if I was working full time. Then working part time as a full time student let me mitigate half the cost and loan half. So I managed to graduate with far less debt thanks to having a good paying internship.

  93. #93
    Delicious Noodles Noodleface's Avatar
    Join Date
    Dec 2012
    Location
    MA
    Posts
    19,187
    Tuconots
    63
    I think I was extremely lucky as my internship paid $24/hour. I went from $9/hour to that. They pay extremely well, but this is more engineering and lower-level than most others.
    Noodleface#1412 - <Rerolled> US-Hyjal Horde - Noodleface

    Follow me on Twitch! - Streaming Rerolled minivan dad raids Friday nights 9PM EST and Saturday mornings 11AM EST!

  94. #94
    Janitor Tuco's Avatar
    Join Date
    Dec 2012
    Location
    Ann Arbor, MI
    Posts
    20,175
    Tuconots
    86
    $24/hr? As an undergrad? wow.

  95. #95
    Delicious Noodles Noodleface's Avatar
    Join Date
    Dec 2012
    Location
    MA
    Posts
    19,187
    Tuconots
    63
    Quote Originally Posted by Tuco View Post
    $24/hr? As an undergrad? wow.
    Yes.

    Edit: I lied. The upgrade from grocery clerk -> intern was the same as intern -> engineer. Do not confuse those symbols with classes.
    Last edited by Noodleface; 05-14-2014 at 07:24 PM.
    Noodleface#1412 - <Rerolled> US-Hyjal Horde - Noodleface

    Follow me on Twitch! - Streaming Rerolled minivan dad raids Friday nights 9PM EST and Saturday mornings 11AM EST!

  96. #96
    Registered User TragedyAnn's Avatar
    Join Date
    Oct 2013
    Posts
    225
    Tuconots
    1
    Quote Originally Posted by Khane View Post
    TragedyAnn, in your specific case I wouldn't recommend quitting school. You've put the time in already and just because you are in school doesn't mean you can't teach yourself as a compliment to your schooling as well. You've already invested time and money into getting the degree so it's probably in your best interest to finish and get that piece of paper.
    Thanks Khane. That's pretty much along the lines of what I'm thinking. I work in a hospital so I am leaning towards health informatics. My goal is learn enough to go ahead and transfer to the IT dept while I finish my degree. We have tuition reimbursement, so it's not all bad.

  97. #97
    Registered User Celestein's Avatar
    Join Date
    Dec 2012
    Posts
    618
    Tuconots
    11
    Quote Originally Posted by TragedyAnn View Post
    Thanks Khane. That's pretty much along the lines of what I'm thinking. I work in a hospital so I am leaning towards health informatics. My goal is learn enough to go ahead and transfer to the IT dept while I finish my degree. We have tuition reimbursement, so it's not all bad.
    You're going to get MUMPS - Wikipedia, the free encyclopedia

  98. #98
    SS-Pedellführer Erronius's Avatar
    Join Date
    Dec 2012
    Location
    Location fields
    Posts
    6,285
    Tuconots
    89
    Quote Originally Posted by Celestein View Post
    We're one of the only game dev companies in the area(Buffalo,NY), we also have a strong relationship with the Buffalo Game Space(NPO dedicated to game dev education, which I'm also involved in). As such, we often offer internships to a lot of first/second year students as an educational opportunity to get involved in the business. Those ones specifically are lower paid. Minimum wage if they "work", unpaid is it's solely educational(i.e. they'll basically just be shadowing someone), and for senior/graduating interns we pay competitive $15/~.

    So in our particular case, we often deal with low-skill interns as a way of giving back to the community here. Though I'd say you're probably generally correct
    As someone who used to live in Buffalo, $15 for senior/graduating doesn't seem bad at all (assuming that Buffalo is still a low-wage shithole with scads of affordable/cheap/derelict housing)
    Quote Originally Posted by Requiem View Post
    Haha. Hey Alex, since apparently you're reading this, at least my version of FoH stayed relevant until 2012. You managed to turn it into a 5th-rate guild within months of me moving on to EVE and ceasing my recruitment activities. You really showed us all how amazing you are when you invited the entire IRC channel to the WoW guild and let Ravvenn alienate everybody but her 5 friends in your absence.

  99. #99
    Registered User Celestein's Avatar
    Join Date
    Dec 2012
    Posts
    618
    Tuconots
    11
    Quote Originally Posted by Erronius View Post
    As someone who used to live in Buffalo, $15 for senior/graduating doesn't seem bad at all (assuming that Buffalo is still a low-wage shithole with scads of affordable/cheap/derelict housing)
    It's improved a lot over the last few years, but that's more or less still true. The cost of living here is insanely low, but the developer salaries are nationally competitive(very recent thing... < 5yrs). Which means Buffalo devs are ending up with significantly more take-home pay, it's really driving a lot of people to telecommute or do startups here, rather than move away.

    Almost moved away myself two years ago~ to Boston before things took a sudden upswing.

  100. #100
    Your best friend. Voyce's Avatar
    Join Date
    Dec 2012
    Location
    Upstate NY
    Posts
    1,564
    Tuconots
    -28
    Quote Originally Posted by Celestein View Post
    It's improved a lot over the last few years, but that's more or less still true. The cost of living here is insanely low, but the developer salaries are nationally competitive(very recent thing... < 5yrs). Which means Buffalo devs are ending up with significantly more take-home pay, it's really driving a lot of people to telecommute or do startups here, rather than move away.

    Almost moved away myself two years ago~ to Boston before things took a sudden upswing.

    mmm but Buffalo is so cold bro.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •