[HN Gopher] Ask HN: I'm an incoming freshman to college for a CS...
       ___________________________________________________________________
        
       Ask HN: I'm an incoming freshman to college for a CS major, what
       should I know?
        
       I've been coding since I was young, so I'm not worried about
       struggling academically, at least in my CS classes. I'm more
       interested in knowing what I should do now to give me an advantage
       in getting a job or otherwise.  All advice is appreciated!
        
       Author : fish45
       Score  : 46 points
       Date   : 2020-05-31 18:33 UTC (4 hours ago)
        
       | tracer4201 wrote:
       | Let me start by sharing what I think is the most important
       | advice. I would focus and really ensure you "learn" things. Don't
       | worry about optimizing for exam scores. In my opinion, it's
       | better to get a 75% on an exam and understand that 75% well as
       | opposed to getting 95% on an exam but only because you
       | "remembered" things without really understanding them.
       | 
       | When you study, spend time deeply thinking about the concepts.
       | Yes you're going to learn CS, but it's not just about learning
       | data structures, algorithms, compilers, etc. etc. College is an
       | opportunity to think critically. It's okay to be wrong or to not
       | understand things. Use the internet to reinforce concepts you
       | don't understand well, or go speak with your professor or TA's in
       | office hours.
       | 
       | Okay... with that out of the way, here are some other thoughts:
       | 
       | 1. Don't index too heavily on advice folks give you on learning
       | any specific programming language. Focus more on the concepts
       | that translate from one language to another.
       | 
       | 2. In the first year or two, do invest in understanding object
       | oriented programming principles, as OOP is quite common today.
       | You'll probably cover this in one of your introductory
       | CS/programming courses anyway. Note: OOP is not the end all/be
       | all.
       | 
       | 3. If you've used Windows your whole life, great. I would
       | encourage you to spend some time learning a Unix-based operating
       | system. This isn't so much related to your CS degree/course work,
       | but I will bet it comes in very handy later on.
       | 
       | 4. Do take a compilers course if it's not required in your degree
       | program. Many universities who have ABET accreditation require it
       | but I recall at least one (several years ago) that didn't.
       | 
       | 5. Do pay attention in your Operating Systems course. Take that
       | course if it's not required. Threading, memory management,
       | scheduling algorithms... you learn concepts here that will likely
       | be very useful in your career.
        
       | aloukissas wrote:
       | 1. Sweat the fundamentals. CS isn't a coding school. Algorithms,
       | complexity theory, databases, operating systems, graph theory,
       | compilers, math, etc. will get you further than any coding.
       | 
       | 2. Go for depth, not breadth. I know most US colleges make
       | students do all sort of breadth stuff, which I don't get (I come
       | from European undergrad, all our classes were CS/EE - coming to
       | US for grad school, I was more prepared than others coming from
       | top US undergrads). You have time to dive into other stuff after
       | school. Do adjacent things like Biology or EE.
       | 
       | 3. Find grad students and see what they're working on. This is
       | where you'll see the value of the fundamentals. Then work
       | backwards and fill the gaps. Try to get a tiny part in a research
       | project (ideally one that can lead to publication).
       | 
       | 4. Read timeless papers one each topic.
       | 
       | 5. Hack, hack, hack - the gap between theory and practice is
       | small in theory but large in practice.
        
       | mshron wrote:
       | Skill up in the humanities. Pick topics outside of technology
       | that interest you, and learn how to communicate about them. Take
       | as many seminar discussion and writing-heavy classes as you can.
       | 
       | From a career perspective, programming skill is relatively easy
       | to come by. Programming AND speaking AND good writing will put
       | you on a better career path. You won't get stuck after a job or
       | two when you know the tools of the trade but not how to handle
       | things outside the compiler.
       | 
       | But also, just as a person who has to make it in this world, you
       | need more than one frame of reference to make sense of things.
       | Humanities students are enriched by taking science and math
       | classes, and getting a new way of seeing things. STEM undergrads
       | who learn to tolerate ambiguity and learn some history are
       | rounder humans.
        
         | vegannet wrote:
         | I emphatically agree. Very few programmers are so talented that
         | their soft skills don't move the needle. For the majority of
         | programmers, soft skills will be the single greatest
         | differentiator between being a middle of the road software
         | engineer or excelling and being _the_ engineer people adore.
         | 
         | An average programmers job is 90% writing code that anybody
         | with a year of experience could write, it's the 10% where
         | you're bridging the gap between technology and business that
         | can realise a whole new world of value -- and that depends on
         | soft skills.
        
         | ck425 wrote:
         | I'll plus one this and recommend you also try doing things
         | outside of class. Uni is an amazing time to try a load of
         | hobbies and new non-academic skills. I personally did a ton of
         | theatre and event planning for fun at uni and learned a loads
         | of useful skills such as:
         | 
         | - How to coordinate a team - How to write a good email - How to
         | interview people (helps for being interviewed) - How to clearly
         | communicate my ideas to others - Public Speaking - How to give
         | feedback - Conflict resolution
         | 
         | Beyond the basics technical skills tend to vary by job. Soft
         | skills are universal.
        
         | psidebot wrote:
         | On the flip side, if a degree program is at a liberal arts
         | institution it may have plenty of humanities builtin and you
         | may want to add a few extra CS courses to round things out.
        
         | bproven wrote:
         | >Programming AND speaking AND good writing will put you on a
         | better career path.
         | 
         | This is very true. If you are a decent developer AND have this
         | "speaking AND good writing skills" you will go much further -
         | it really separates you from the pack...
        
       | bdcravens wrote:
       | Find a language and learn it deep (at this point, I'd say
       | probably Javascript).
       | 
       | Find opportunities to work on code someone else has written.
       | Triaging bugs in open source projects (even if you aren't
       | involved, but are just following along in issues) is great.
       | 
       | If you can become involved in open source, working on someone
       | else's project, that's a great way to learn the communication
       | skills needed to function in a career.
       | 
       | Learn CI/CD.
       | 
       | Learn SQL.
       | 
       | I'd strongly encourage you to minor in business.
       | 
       | Get as good as you can at public speaking, whether in coursework
       | or on an extra-curricular basis.
        
       | phased20 wrote:
       | (Some general advice in the last few paragraphs)
       | 
       | One thing you should absolutely put on your radar: are you at all
       | interested in grad school?
       | 
       | You have plenty of time to actually make the decision to go to
       | grad school (plenty of people don't decide until years after
       | graduating), but if you think it might even be a remote
       | possibility, there are two things you absolutely need to do:
       | 
       | (1) Get STELLAR letters of recommendation. This is the most
       | important thing to know, and you should consider that you'll need
       | between 3 and 6 depending on your program.
       | 
       | (2) Keep your GPA above ~3.5 (landing something lower won't break
       | your application, but it will make your life harder).
       | 
       | Lots of the career advice I've seen maps to getting SWE jobs in
       | industry, where things like your undergrad GPA, research
       | experience, and letters of recommendation don't matter as much.
       | You can be a phenomenal engineer at a "prestigious" company
       | (whatever that means to you) with a huge variety of undergrad
       | track records (including not even going to college!). But just
       | like getting a referral from someone who works at a certain
       | company is a higher-signal (and easier) way to select an
       | applicant to interview than trying to sort through a stack of
       | resumes, getting a "referral" from a professor in the form of a
       | letter of recommendation is a higher-signal way to filter
       | applications than basically anything else. For research, grad
       | school admissions committees tend to not care too much about
       | internships / work experience, unless they're tied to research in
       | some way. If you're interested in this, read the link at the end
       | of this post [0].
       | 
       | Also, considering COVID-19's impact on engineering hiring right
       | now, if you're having trouble finding an internship, doing a
       | summer of undergraduate research can be a great backdoor to
       | getting some hands-on experience, work with a professor, and
       | 
       | Generally, on the career side of things, I'd say spend a good
       | chunk of time exploring what types of work you enjoy and find
       | engaging. It's hard to predict what this will be when you're
       | coming in, so do lots of small experiments to try to figure this
       | out. Build small projects, reach out to professors and try your
       | hand at research, join clubs and find other students who share
       | your interests.
       | 
       | The last thing I'll say here is realize that there might be a
       | whole set of career options you didn't even know existed coming
       | in. Amongst my friends, the most common "discovered" post-
       | graduate plan was (management) consulting, which virtually none
       | of my friends knew existed coming into college, and many ended up
       | getting excited about while there.
       | 
       | Overall, you'll be hard-pressed to find another space where
       | you're surrounded by thousands of other people your age who are
       | excited about learning, meeting each other, and working on
       | ambitious stuff. There's way more to do and discover than there
       | was in high school, but you'll also have to be much more active
       | in finding and leveraging opportunities instead of waiting things
       | to come to you. Work hard and explore, but also remember to make
       | friends, let loose, find some parties, go on dates, stay healthy,
       | and keep an open mind throughout. It's a wild ride, and it can be
       | an incredibly rewarding handful of years. Good luck!
       | 
       | [0] https://www.cs.cmu.edu/~harchol/gradschooltalk.pdf
        
       | NotSammyHagar wrote:
       | Keep writing programs, that's the ultimate skill and what you
       | need to demonstrate at interviews. Second, if you are shy like a
       | lot is us, take communications, meet other people. Try new
       | things. You can find friends, ignore the cool kids if you have no
       | connection. Also, this pandemic and violence will pass, hopefully
       | we can improve society - but society will still be there.
        
       | diebeforei485 wrote:
       | For your non-CS electives - fill them up with classes that are
       | much easier to learn in a college environment.
       | 
       | If there is an intro to law class (preferably one meant for non-
       | lawyers, for example Intro to Business Law), you may find that
       | useful.
       | 
       | Take 1 or 2 business classes. It doesn't have to be a minor or
       | double major - just the basics of marketing, finance, economics,
       | and entrepreneurship.
       | 
       | Get better at "presentation" - speaking and writing. Public
       | speaking (or debate) would be helpful. This could be an
       | extracurricular like Mock Trial, it doesn't have to be a class
       | (though if one is offered and fits in your schedule, that could
       | be great).
       | 
       | Oh. Machine Learning. Make sure you know the basics of it, even
       | if you don't want a job in ML.
        
       | zests wrote:
       | College is a place to learn social skills as well as technical
       | skills. 75% of your effort should go to technical college work,
       | 25% of your effort should go to socializing. Conversely, 75% of
       | your leisure should go to socializing and 25% to non technical
       | yet brain stimulating work.
       | 
       | I shouldn't have to state that this rule is better taken
       | figuratively than literally.
        
       | tsumnia wrote:
       | This is more of an aside, but since you've been coding for some
       | time, please understand that concepts you already know need to be
       | taught to those that do not. Concepts like a nested loop are
       | often one of the hardest initial hurdles for many students. Your
       | first CS courses will spend a lot of time on these types of
       | concepts.
       | 
       | Please be patient and not become annoyed with how "slow" the
       | class is going. Students that struggle with that first hurdle
       | will continue to struggle as the class moves forward [1]. I would
       | say, if you pick up or complete the homework without any issues
       | to reach out to your peers and offer help. You don't need to
       | share code, but something like a small whiteboard to explain
       | concepts would be good.
       | 
       | [1] http://www.ppig.org/sites/ppig.org/files/2014-PPIG-25th-
       | Ahad...
        
       | sircastor wrote:
       | In spite of having programmed for many years before starting my
       | degree, there was a lot of academic challenge. There's a lot of
       | theory that simply writing code does not teach you. There's a lot
       | of course work that doesn't have to do with programming.
       | Iteracting with people, project design, team management. If
       | nothing else, it's 8-9 hours of work a week per class any way you
       | look at.
       | 
       | Do the work, don't short-change yourself in your education.
        
       | JabavuAdams wrote:
       | Do side projects. Do internships, if possible. Aim for A's
       | instead of A+'s. The time-savings will be enormous, and allow you
       | to do other things.
       | 
       | EDIT> Join project teams, if possible. E.g. game development
       | club, robotics club, rocketry club, etc.
        
         | acmexyz wrote:
         | Doing side projects is so key and very underrated. The downside
         | of a CS degree is it tends to be heavily theory-skewed (which
         | can be really great!), but it doesn't take much to forget the
         | practical side of the craft.
        
       | Spooky23 wrote:
       | Math.
       | 
       | When I was a TA, the kids who struggled were most hurt by
       | calculus.
       | 
       | The other thing is read up on how to do the college game.
       | Participate in office hours, understand what drives your grades,
       | etc. I had a hard time with this, as I was able to coast through
       | high school with minimal effort.
        
       | bra-ket wrote:
       | start doing competitive programming as early as you can , enroll
       | in ICPC https://icpc.baylor.edu/ and join competitive programming
       | weekly group at you school (or start one if you don't find any)
       | 
       | this is a good book for preparation
       | https://www.amazon.com/Competitive-Programming-3rd-Steven-Ha...
       | 
       | participate in contests on https://onlinejudge.org/, topcoder or
       | similar on weekly basis (you will hear a lot about leetcode as a
       | hard prerequisite to getting a job these days, but it's trivial
       | for people who do competitive programming)
       | 
       | you will learn much more from doing that for a couple of years
       | than any college can teach you
        
         | tibbar wrote:
         | This. After a couple years of serious effort on Codeforces,
         | algorithms interviews are trivial. And perhaps more
         | importantly, it becomes much easier to bang out a state
         | machine, toss around some data structures, check for edge
         | cases. You'll become really comfortable with that middle tier
         | of software algorithms that are a non-trivial composition of
         | standard ideas, but still fall short of needing a research
         | paper, etc. (And you'll develop a sense for when a problem _is_
         | actually-hard).
        
         | mikaelmello wrote:
         | I second this. Competitive programming helps you develop skills
         | that I find important in a career and that, in my opinion, had
         | a strong influence on my current success.
         | 
         | There are many benefits and things where Comp. Programming can
         | help you, but the most obvious one is how interview questions
         | in FAANG (and similar) companies are easy compared to your
         | weekly Comp. Programming contests.
        
       | saalweachter wrote:
       | 1. Don't assume your CS classes will always be easy.
       | 
       | Having programmed a lot is a big advantage, but you're going to
       | be learning a wide variety of things as a CS major that you may
       | not have had to think about previously, and there is going to be
       | a lot of it which isn't intuitive. Be prepared to study more than
       | you have in the past and don't get cocky; sometimes it isn't
       | until your junior or senior year that you get beyond what you
       | already sort-of know and hit a wall.
       | 
       | 2. Try to double major or minor in something completely unrelated
       | to CS and math, unless you are _really_ into CS or math.
       | 
       | Programming is a tool to make computers do stuff. A pure CS
       | degree leaves you qualified to program compilers and IR systems
       | and computer games. If you learn about something really hard,
       | like chemistry or biology or whathaveyou, you'll also know what
       | sort of programs chemists and biologists and whathaveyou need and
       | have a domain to write programs in.
        
         | liquidise wrote:
         | I strongly second both of these points will provide some more
         | color:
         | 
         | > 1. Don't assume your CS classes will always be easy.
         | 
         | Easy or _quick_. Some of my worst college experiences involved
         | putting off CS work that, while still easy, had sneaky edge-
         | cases that took many hours to cover. Don 't be lazy with your
         | CS projects and you will be in a comfortable place.
         | 
         | > 2. Try to double major or minor in something completely
         | unrelated to CS and math
         | 
         | Sage advice. I know a few CS/SE majors who minored in psych.
         | Each, without exception, left college with an understanding of
         | what drives office politics and dynamics that surpassed their
         | peers. Computers are easy in that they work in objective ways.
         | It is hard to overstate how valuable a diverse education can be
         | once you are in the real world dealing with real (read: flawed)
         | humans.
        
         | hatsunearu wrote:
         | double majoring is a hilarious waste of time and money. don't
         | do it.
        
           | curiousllama wrote:
           | Definitely not a waste of time. Learning to think in a non-CS
           | way can be incredibly valuable. Will it make you a better
           | programmer? Maybe not. Will it make you a more effective
           | employee, founder, or person? Yes.
        
           | javajosh wrote:
           | False. I was a physics/philosophy double and I haven't
           | regretted it for a second. Physics was profound (although
           | somewhat disappointing!) but philosophy is the home of
           | ethics, and lots of writing, and the study of both of those
           | will serve you in good stead.
        
       | mattlondon wrote:
       | Here are a few things that either I regretted not learning/being
       | taught in my CompSci course, or that I see lacking in new juniors
       | who start on my team:
       | 
       | - How to actually build something entirely from scratch and host
       | it somewhere so others can use it. I.e. do something 100% top-to-
       | bottom where you not only design & write a bit of software then
       | hand the assignment in, but actually set up a server, install
       | what you need, deploy the software, monitor it etc etc - bonus
       | points for getting your friends to try and use it have them file
       | bugs for you to fix. Some suggestions - write a clone of
       | Wordpress/StackOverflow/HackerNews or whatever and do the _whole
       | thing_ yourself, right down to database schemas and installing
       | and configuring nginx yourself. You will learn so much if you
       | have never done this. Too much at school was compartmentalised so
       | that you only had to  "focus on the problem" and the other stuff
       | was provided for you.
       | 
       | - Source control: Git/Mercurial and other distributed ones, plus
       | also still-in-use dinosaurs like Perforce/SVN. These days with
       | Github everyone probably knows this, but I'll say it anyway since
       | at school it is often just you working on your own.
       | 
       | - Unit testing :-) Bonus points for continuous
       | integration/deployment.
       | 
       | - Basic project management: how things are run in teams, code
       | reviews, bug handling etc.
       | 
       | - web + networking fluently (answer the "what happens when I
       | enter example.com in the browser" question from the initial DNS
       | lookup through to the DOM rendering and everything in between)
       | 
       | - fundamental *nix familiarity. Don't need to be l33t, but at
       | least be able to get basic grunt work done with pipes and the
       | like instead of having to resort to dumping data to excel and
       | filtering it there. Sed, awk, grep, wc, uniq, sort, vi etc etc
       | etc.
       | 
       | - the obvious algorithms + data structures stuff.
       | 
       | - These days: Cloud: the 12 Factor App thing is quite a good
       | thing to read and internalise - it may change your perspective of
       | how you think about approaching things. Probably worth having at
       | least a basic understanding of docker + k8ns, as well as using at
       | least one of the major cloud provider's services (they're all
       | largely the same for the basics)
       | 
       | Otherwise my advice would be to just generally get stuck into
       | stuff and just keep messing around with as much different stuff
       | as you can to keep your horizons broad and experience varied.
       | Don't try to focus too much on specific areas - there might be
       | stuff you didn't even think about previously.
       | 
       | Have fun & good luck!
        
       | downerending wrote:
       | You're young and your brain is still rather plastic. So, learn
       | everything. Textbooks for a CS curriculum is a great place to
       | start. But also practical programming texts, the Unix classics,
       | man pages galore, lots of math (esp discrete and linear algebra).
        
       | xupybd wrote:
       | Find Friends to work with. You will help them they will help you.
       | Exams are not like coding they need practice despite how well you
       | know the topics. Sitting down for hours by yourself is near
       | impossible. Sitting with a group helps to maintain focus and
       | gives you someone to explain this. It also gives you someone to
       | explain things too. Nothing will sharpen your ability to clearly
       | answer an exam question more than teaching someone that concept.
       | 
       | Those same friends will be the start of your professional
       | network. The more contacts you have the better for you career.
       | 
       | Finally try to intern during your holidays. Work experience will
       | help you land a job.
        
       | 3pt14159 wrote:
       | There is no speed limit. I wish I read this when I was younger:
       | 
       | https://sivers.org/kimo
       | 
       | I breezed through university and I could have made so much more
       | of it if I'd just self-taught from the textbooks and started
       | grappling with papers in my undergrad. Once your foundation of
       | mathematics and CS is stronger than your peers you'll find so
       | many doors open to you.
        
       | hindsightbias wrote:
       | Look to other comments for short term advice. For long term, play
       | to your strengths and work on your weaknesses. Those things you
       | might never be good at - look around you. You are surrounded by
       | all sorts of people with their own skills. Mingle - build a team,
       | it will help getting thru all the ups and downs of college life
       | and teach you about people
       | 
       | Jobs are mostly about connections. Volunteer. Mentor a freshman
       | every year. Ask for help. Treat the lab guys well. Connect
       | people.
       | 
       | Finally, the most important thing: screw up enough to get
       | noticed.
        
       | Jemaclus wrote:
       | My advice might be controversial, but here are some thoughts I
       | have...
       | 
       | My big piece of advice: Major in something useful (CS, check!),
       | minor in something fun. A lot of the computer science classes you
       | take will be boring AF, or you'll start to bang your head against
       | the desk wondering why you have to know how operating systems
       | work when you just want to make iOS apps (or vice versa!). Some
       | of the classes will be deeply math heavy. It can and will seem
       | overwhelming at times. So minor in something fun. Pick something
       | that has no bearing on your chosen career path. Minor in Theater
       | or Music or Art or Literature or Physical Education. The best
       | part about minors is that you generally get to take all the fun
       | classes and not the terrible ones! You'll meet a whole bunch of
       | people with diverse interests that aren't solely computer nerds.
       | 
       | As far as the CS stuff is concerned, focus on absorbing as much
       | as you can. Contrary to what other people said, don't sweat the
       | details. You should have a fundamental understanding of all the
       | big areas (databases, languages, algorithms), but you don't need
       | to be an expert in any of those things to get a job. In fact, 90%
       | of the subject matter you learn in college won't be relevant to
       | whichever job you get. BUT... the act of learning is important,
       | and the fact that you have fundamental understandings of those
       | things will get your foot in the door
       | 
       | Think of your college degree as a ticket to an interview, and
       | your first job as the real education. Your degree is proof of two
       | things: 1) that you can learn, and 2) that you can start, stick
       | with, and complete a large, multi-year project. Nobody expects
       | someone with a Bachelor's degree to be an expert programmer, but
       | they _do_ expect critical thinking skills and the ability to
       | learn. You'll learn more on the job in the first 6 months than
       | you will in 4+ years of college education... so don't put too
       | much stress on yourself there.
       | 
       | So... take it seriously, but not too seriously. Study hard, but
       | take fun classes too. Make connections in your computer classes,
       | but make friends across a wide variety of interests. Learn the
       | fundamentals, but don't sweat the details.
       | 
       | (Also, pro tip: nobody gives a shit about your GPA. A 4.0 doesn't
       | get you anything in the real world except a rude awakening. By
       | all means, try to get all A's if you can, but don't burn yourself
       | out by trying to get perfect grades.)
        
         | LifeIsBio wrote:
         | I read through this waiting to get to the controversial part
         | and never found it. This is good advice not only for CS but for
         | any rigorous degree. One of my favorite classes in undergrad
         | was Ultimate Frisbee because it ensured I got some aerobic
         | exercise each week and I got to experience playing UF with some
         | really good people.
         | 
         | There are lots of other critical points casually shoved in here
         | that could probably be expanded to book chapters if you wanted.
         | The point about making connections is huge. Arguably the
         | biggest difference between a state school and Ivy League
         | education is the network available to you. Regardless of where
         | you're at, establishing connections is a major part of
         | undergrad.
        
         | tsumnia wrote:
         | > minor in something fun
         | 
         | I agree. I double majored in CS and Acting specifically because
         | I enjoy both topics and wanted to get better. It does take some
         | dancing around with your schedule, but if you take the time to
         | create some different alternative schedules it can be done.
         | There were some semesters where I was more CS heavy, and others
         | more Theatre heavy. I was able to walk out with both degrees in
         | 4.5 years.
        
       | flaque wrote:
       | You should take a serious look right now to make sure you're
       | going to a college with a good program for getting a job.
       | 
       | From someone who went through a school with effectively no
       | program, I definitely wished I'd considered this before devoting
       | 4 years and 100k to one particular school.
       | 
       | So here's some actionable questions you can ask your career
       | center right now to see if you're getting your money's worth.
       | 
       |  __Does the university protect you against exploding offers? __An
       | exploding offer is when a company offers you a job offer, but you
       | have to decide immediately or within a short time period (like a
       | day or two). In the "real world" this can make sense because the
       | company may actually need someone immediately. For students
       | though, this practice is a bit scummy, since no company
       | immediately needs an intern. Typically it's just manipulating
       | someone who might not know any better. To prevent this, any
       | college worth it's tuition will require all companies recruiting
       | students to follow some form of [offer
       | guidelines](https://ecs.engineering.illinois.edu/career-
       | resources/offer-...).
       | 
       | If they _don't_ have this sort of guideline, it likely means they
       | don't have any leverage or industry connections. For example,
       | most schools will just blacklist companies from their career
       | fairs that don't follow their guidelines. If the companies don't
       | care, then the career program is pretty bad.
       | 
       | And on that note, __does the school have regular career fairs
       | attended by tech companies you 've heard of? __
       | 
       | In some schools the vast majority of students get their
       | internships or new-grad jobs from career fairs. In others, there
       | won 't be a technical career fair. Or if there is, there won't be
       | any CS/programming jobs that show up.
       | 
       | One hack to figure this out is to check if the school is
       | _charging companies_ money for STEM career fairs. For example,
       | San Jose state charges $850 a table the last time I checked. If a
       | school isn't charging, it often means they can't actually get
       | anyone to come. (though obviously YMMV)
       | 
       |  __Does the school have course offerings for technical
       | interviews? __Many, many schools these days are creating classes
       | specifically to help students pass their technical interviews.
       | For example, here 's [Boise State's
       | class](https://github.com/BoiseState/CS-HU390).
       | 
       | If the school _doesn't_ have a course like this at some point, it
       | may mean they are disconnected to the real world and have little
       | to no support for you in general. It is not a hard thing for CS
       | professors to setup a class for extra practice with algorithms &
       | data structures.
       | 
       |  __Do students have access to investment capital or startup
       | support? __Many schools have some form of a "student startup"
       | program specifically around CS students. If they don't, there may
       | also be a "college student" specific VC fund nearby, such as
       | [Contrary Capital](https://contrarycap.com/), [Dorm Room
       | Fund](https://www.dormroomfund.com/), or [Rough Draft
       | VC](https://www.roughdraft.vc/).
       | 
       | _You_ may not start a business, but one of your peers might, and
       | that creates a network that can help you get a job in the future.
       | Plus, this opens up opportunities you may not have considered
       | before.
       | 
       | It's important for you that these are heavily associated with the
       | computer science program and not uniquely available to the
       | business students. Some schools only allow biz kids to do these;
       | the money comes from a grant that's only allocated for biz
       | students.
       | 
       |  __Does the school have access to hackathons? __Hackathons may be
       | for you, or they may not be. (I personally dislike them) But you
       | should seek out a place where they exist or you have access to
       | them. They encourage students to actually build things, which is
       | the type of environment you want to be in. You should surround
       | yourself with other people who are actually using their CS skills
       | rather than just passing their classes.
       | 
       | Does the university host a hackathon? If not, is it in the local
       | area? If not, does it sponsor students to go? If not, have _any_
       | students gone?
       | 
       | You'd be surprised how many schools with a CS program where all
       | of those answers are "no".
       | 
       |  __In general, you should a baseline goal in your university.
       | __There 's obvious benefit to learning as much as you can in many
       | different subjects while you have the time. But get a job at the
       | end.
        
       | kccqzy wrote:
       | > I've been coding since I was young
       | 
       | Same here, but that doesn't mean you won't struggle. If you have
       | been coding since very young, you could very well be quite
       | skilled at software engineering, the practical aspect of
       | producing software, but not at computer science. I was fortunate
       | enough that a middle school teacher found out I was interested in
       | coding and decided to teach me real computer science instead.
       | That's where I struggled a lot. I didn't even know why for
       | example learning about heaps or binary trees was a necessary
       | endeavor, when I could very well build websites or make DOS games
       | on my own. It took until high school for me to truly grok these
       | computer science concepts, mostly about algorithms and data
       | structures. Even then I still learned a great lot in my undergrad
       | CS classes beyond algorithms and data structures.
       | 
       | Computer science is a vast field; don't think that just because
       | you have coding experience you can afford to coast along, instead
       | there's always something new to learn. Go find your own subfield
       | that you are interested in and go deep in it. I personally really
       | enjoyed learning about type theory (going through Pierce's TAPL)
       | for example. It may not be an undergrad course but still.
       | 
       | As for advice, I'd say go talk to the professors more often. They
       | are generally willing to help. And if they sense that you are so
       | much ahead of your peers, they could very well give you new work
       | to challenge yourself. Perhaps even ask you to collaborate on a
       | research project they are working on.
        
         | Jhsto wrote:
         | > Go find your own subfield that you are interested in and go
         | deep in it.
         | 
         | Conversely, do know that this may not yield much appreciation
         | from professors. BSc and MSc degree programs don't generally
         | reward you for doing work that is so deep to be publishable.
         | Even though you are at college to learn, you can't get carried
         | away learning by yourself, if it is in the way of passing
         | exams.
        
       | koheripbal wrote:
       | How to differ admission for 1 year.
       | 
       | Seriously. College is going to be a shit show this year with
       | covid-19.
        
       | aaron_seattle wrote:
       | "Real life has no curriculum".
       | 
       | ~80% of what I've learned vocationally, came after school, under
       | the informal mentorship of seasoned practitioners.
       | 
       | Arguably the #1 exportable skill you gain from college is
       | metacognition - learning how to learn. So that the next time you
       | find yourself staring into a "I have no idea" moment, instead of
       | being stuck, you'll be able to iteratively expand your mental map
       | of the territory; form and test hypotheses; sketch out needed or
       | missing tooling, etc.
        
         | aaron_seattle wrote:
         | i.e. remember this when you find yourself deep into some "am I
         | ever going to really need this" curriculum. Directly, probably
         | not. Indirectly, you are rewiring your neurons for generalized
         | problem solving to the nth degree.
         | 
         | Also, this "missing course": https://missing.csail.mit.edu/
        
       | lackbeard wrote:
       | Join your school's ACM Programming Contest or ICPC team. It will
       | prepare you well for whiteboard coding interviews.
       | 
       | Also try to do at least two internships; they'll teach you a lot
       | about what professional work is really like and once you've
       | graduated a lot of companies will like seeing this experience on
       | your resume.
        
       | veeralpatel979 wrote:
       | I'd say choose an area to specialize in. Whether it's security,
       | graphics, drones, something else...find what you like and don't
       | just gravitate toward AI/machine learning/blockchain since that's
       | what's hot.
        
       | Ologn wrote:
       | In recent times I have been taking night and weekend classes to
       | finish my CS bachelors along students half my age, so I will tell
       | you what I told them.
       | 
       | One thing is we took CS classes, and also some English courses in
       | writing. Even on the job, those writing classes are important.
       | You will be writing e-mails, documentation etc. and being able to
       | be clear and to the point is helpful.
       | 
       | Also, in my eyes, some students were not doing enough to get an
       | IT job out of school, never mind a good IT job with an upward
       | trajectory. One guy told me "I don't study for quizzes since they
       | are only 10% of the grade". I studied for quizzes because they
       | were 10% of the grade, but also because I wanted to keep up with
       | the subject and know about it for the future. Then part-way
       | through a semester, or after a semester, I would often manifest
       | whatever I learned. So if I learned Java, I would write a project
       | in Java for myself. Or at least go on Github or somewhere and fix
       | an issue on a Java project. Or if I learned graphics programming
       | I would write a graphics program, or at least contribute to a
       | free/open-source one. Through this, I would take all the theory I
       | had learned over some months and ground it and manifest it in
       | real work.
       | 
       | Also you would probably do well to get on CS department mailing
       | lists, and check the bulletin board or whatever for internship
       | listings.
       | 
       | I was surprised how lackadaisical some kids took it. Maybe it was
       | their youth. I have seen many people parlay their CS skills into
       | everything from a well-paying job, to parlaying it into an
       | enormous amount of money. So I went above and beyond. I recall
       | one homework where we had to talk about process schedulers,
       | something I was always interested in but never stopped to read
       | about. I figure in the first half hour of work, I already had
       | gotten an A, but I spent hours and hours reading about process
       | schedulers before turning in my homework.
       | 
       | I recall speaking to a bunch of the brighter CS seniors, and I
       | mentioned something about version control. "Version control?" one
       | said. I said, "Yes, you know, like git". "Git?" he said. None of
       | them knew what version control was. You should know things like
       | that before your first job interview, taking classes is not
       | enough. It's good to know what algorithms are linear big O, and
       | which are exponential, but you are going to have to learn some
       | things they won't teach you in class to get a job. I would
       | suggest going to Github, finding a project that has merged pull
       | requests from a number of contributors recently, and looking at
       | contributing a pull request to that project. Then at least you'll
       | get an idea of what work is - someone posts a bug to issues, you
       | look at it, you fix it and put up a pull request, then someone
       | with more (or equivalent) experience looks at it and either gives
       | you some pointers, or merges your changes. At work you will be
       | doing similar stuff.
        
       | mnky9800n wrote:
       | Paying for mooc courses from your University is going to suck. I
       | would defer if I was you assuming your University will be having
       | some sort of crazy online or hybrid thing in the fall due to
       | covid19.
        
       | nlawalker wrote:
       | Not to imply you're not ready, but in response to "I've been
       | coding since I was young, so I'm not worried about struggling
       | academically":
       | 
       |  _" Computer science is no more about computers than astronomy is
       | about telescopes."_
       | 
       | Depending on the nature of what your department offers, be
       | prepared to learn about, spend time on and potentially struggle
       | with concepts that have _nothing_ to do with coding or software
       | engineering as you might be familiar with it, or even sitting in
       | front of a computer.
        
         | xyzwave wrote:
         | Such a timeless quote. I believe this is the source:
         | 
         | https://youtu.be/2Op3QLzMgSY
         | 
         | While there, SICP is not a bad way to augment a CS degree :-)
        
       | Gmw1999 wrote:
       | My advice as someone who was in the same position and has just
       | done a year in industry and about to go back and do my final year
       | of CS (UK), is make sure you enjoy yourself and learn how to
       | manage your time as this will help dramatically. Then during this
       | time if you can learn parts of the syllabus, so it's not the
       | first time you hear about it when going into a lecture. Find your
       | niche what interests you, and gets you excited, talk to your
       | lectures about that stuff, that can help later, especially if you
       | get bored or want to go into research. Overall spend time doing
       | side projects, enjoying learning, part taking in clubs and
       | societies and if you find it easy find something to challenge
       | you! If you want to ask me anything more about my experience so
       | far, feel free to send a message (email in bio)
        
       | yawz wrote:
       | This! You should never lose the curiosity and drive that made you
       | ask a question here. I would argue this is the most important
       | thing you need for good first steps in your career and in life.
        
       | cushychicken wrote:
       | You squander a big benefit of going to college if you focus
       | solely on academics.
       | 
       | This is one of the only times in your life you will have a ton of
       | free time and proximity to a bunch of smart people your own age.
       | Don't pass up an opportunity to do something fun, just because it
       | doesn't have anything to do with school!
        
       | verdverm wrote:
       | Learn your first (class's) language now, so when you are learning
       | you can focus on concepts not syntax.
       | 
       | Learn bash and master the terminal, bash programming guide,
       | advanced bash PG, https://github.com/hofstadter-io/jumpfiles
       | 
       | Consider Vim
       | 
       | Be involved in the CS groups, this is where the smartest people
       | are
       | 
       | Talk to your faculty all the time
       | 
       | Get into research
       | 
       | Build things that aren't for class
       | 
       | Hit me if you like, email is in my profile
       | 
       | Good luck!
        
       | sesuximo wrote:
       | Make friends with the TAs. In a year or two, they'll be able to
       | refer you for internships.
        
       | javajosh wrote:
       | Learn to meditate, find a sport that you like and do it
       | regularly, take a class on how to learn (Coursera has a good one
       | "Learning how to Learn"), and take a class on how to take good
       | notes. You might also want to study up on personal organization
       | and personal finance.
       | 
       | WRT study groups, YMMV. I found them incredibly stressful and
       | counter-productive, but other people really seemed to like them.
       | Eventually I actively avoided them.
       | 
       | Start your projects as soon as possible, and then put them aside.
       | You'll come back with new eyes, but your brain needs time to chew
       | on it. Sadly, I think a lot of college courses go too fast, and
       | sometimes you'll have an "aha!" moment months, or even years
       | later. Not sure if there is a solution to this.
       | 
       | Love is almost inevitable, and is almost always a huge disaster
       | for everyone. It's possibly an even worse impact on study than
       | video-game addiction. I would say try to avoid love, but honestly
       | its wonderful. But if you feel lonely, feel lucky that you're not
       | either distracted or heartbroken.
        
       | enhdless wrote:
       | Some thoughts I have as a CS student right now (for context, I
       | grew up the in Bay Area and am a rising senior at UC Berkeley):
       | 
       | - I started coding when I was young, and I still struggled
       | academically. There is a difference between knowing how to code
       | and understanding computer science. For me, I found discrete math
       | and formal proofs extremely difficult.
       | 
       | - It is very, very easy to get caught up in a constant mode of
       | grinding CS hw/projects, especially if you're around a lot of
       | studious people. Work smarter, not harder.
       | 
       | - Grades aren't everything! If your main goal is to get a job,
       | you don't need straight A's. No recruiter or manager has ever
       | asked for my GPA.
       | 
       | - Take classes outside of CS. Have hobbies outside of coding.
       | Make friends who are studying different disciplines. You need
       | outside perspectives to better understand the impact of
       | technology on the world. Be aware of life outside the tech
       | industry. Recognize software engineering as a tool to apply to
       | issues.
       | 
       | - You'll meet people from so many different backgrounds. Some
       | people come from high schools that taught Java and some people
       | come from high schools that are not able offer any technology-
       | related classes. Remember that some people are learning to code
       | for the first time in their life!
       | 
       | For getting an internship (assuming you're interested in a SWE
       | role):
       | 
       | - First of all, it's perfectly fine to not have an internship!!
       | You can take classes, do research, work on side projects, etc.
       | 
       | - If you don't have prior job experience, spend some time on side
       | projects (that are meaningful to you!!) to demonstrate your
       | technical abilities.
       | 
       | - Have someone who is more experienced review your resume.
       | 
       | - You might hear that it's very difficult to get an internship
       | straight out of freshman year. Honestly, at that stage, it's just
       | a numbers game-the more online applications you throw your resume
       | at, the more likely you'll get an interview.
       | 
       | - Don't discount career fairs on campus! I used to think they
       | wouldn't be helpful because they were so crowded, but I got my
       | internship after freshman year by talking to a manager at a
       | career fair.
       | 
       | - Be able to clearly and succinctly describe yourself and your
       | goals. What are your interests, and why? How do your hobbies
       | and/or past experience support those interests?
        
       | newqaz wrote:
       | Discrete math topics teach amazing way to think that most people
       | never get to see in high school. Knowing stuff in free a book
       | like [0] is immensely helpful. There are a ton of decent
       | introductory discrete math books like the ones by Susanna Epp, Ed
       | Scheinerman, Goranko bros and Gary Chartrand. Just google "list
       | of discrete math book". What google spits out won't even scratch
       | the surface of what's available out there. But modern CS folk
       | will have to know much more than the basics of discrete math. For
       | example, math analysis and probability theory are very helpful.
       | This free book [1] gives a sampling of such topics. As
       | preparation, one can start by looking at pre-real-analysis books
       | like the ones by Lara Alcock and Jay Cummings, Linear Algebra by
       | Kuldeep Singh and Probability Theory by Dimitri
       | Bertsekas/Tsitsiklis. These books are very easy to read. There
       | are also introductory books that give a bare-bones sampling of
       | most undergrad math subjects from abstract algebra to topology
       | like the ones by Gary Chartrand (separate from his discrete math
       | book) and Steve Warner. Such books are designed to be as hand-
       | holdy as possible. The more I type the more I realize there's
       | more (much, much, much more) to say about the math side of
       | things. Anyway, for another thing, google category theory just to
       | be aware of it. There are a few undergrad/high school level books
       | on the subject, but I am not sure how useful that is to a
       | freshman.
       | 
       | [0] Book Of Proof by Richard Hammack
       | 
       | https://www.people.vcu.edu/~rhammack/BookOfProof/
       | 
       | [1]Foundations of Data Science by Avrim Blum, John Hopcroft, and
       | Ravindran Kannan
       | 
       | https://www.cs.cornell.edu/jeh/book%20no%20so;utions%20March...
        
       | MattGaiser wrote:
       | Hackathons! Check out Major League Hacking. It is a ton of fun
       | and the prizes have been quite useful when job searching.
        
       | _hardwaregeek wrote:
       | I've written a lot about this. If you want a job, start applying
       | early. But don't feel like you have to get one immediately. If
       | you're sufficiently motivated, consider taking time off to work
       | on your own projects.
       | 
       | 1. Don't take all CS classes. Try other subjects and diversify
       | your knowledge. 2. Get good at sending emails. It can help you
       | get a job, get contacts or just gather information. 3. Even
       | though you should take non-CS courses, that doesn't mean you
       | should get a double major. It's not always worth it. 4. Make sure
       | you like CS. Having experience is a good sign, but people can be
       | advanced or good at a subject they don't like. Make sure you like
       | it even when it gets tough.
       | 
       | [1]: https://blog.torchnyu.com/2020/03/04/take-fewer-cs-
       | classes.h... [2]: https://blog.torchnyu.com/2019/12/19/sent-from-
       | my-iphone.htm... [3]: https://blog.torchnyu.com/2020/05/15/the-
       | case-against-double... [4]:
       | https://blog.torchnyu.com/2020/05/14/do-you-like-it.html
        
       | theduder99 wrote:
       | don't go straight through college fast as possible. take some
       | internships along the way. If I see a resume that only includes
       | class based projects, it is an immediate skiperino.
        
       | readingnews wrote:
       | As a CS professor, the main thing most incoming freshmen are
       | lacking in is MATH skills. If the weed out courses of "can you
       | think algorithmically" do not get them, the math department will.
       | So many students too far behind in math.
       | 
       | I would second a number of comments on here like "study another
       | subject" (most CS courses require a minor outside of CS, other
       | than MATH, which you should get a minor in just due to the
       | numbers)
       | 
       | I would also second the idea that CS in college is not coding, is
       | not SW engineering, etc. It is learning fundamentals and how to
       | prove your code is correct, mathematically and algorithmically.
        
       | jimhefferon wrote:
       | Lot of good advice here. Another is: take courses in accounting
       | and management.
       | 
       | First of all, the path up from being a coder is to lead a group
       | of coders. Second-- who knew? -- a lot of this stuff is
       | interesting.
        
       | caymanjim wrote:
       | CS undergrad will teach you principles and fundamentals, but
       | won't teach you much of anything about actually writing software.
       | Make sure you learn practical skills, like organizing large
       | projects, deploying, scaling, tools, etc. You'll be exposed to
       | some of this, but I've never met a CS grad who could hit the
       | ground running unless they'd already been working as well. Get
       | internships as early as possible. Work on large team projects and
       | learn some structured planning and estimation skills. Learn Unix
       | deeply. Don't skimp on the math and statistics, because while you
       | might not need it for a decade (or ever), knowing math opens a
       | lot of doors (NASA, finance, machine learning, and also general
       | utility).
        
       | ykevinator wrote:
       | You just have to know one thing- cs takes more time than you
       | think. It's normal to spend 4 hours a night, your non-cs friends
       | are going out, you can't. Everyone's going to the game, you
       | can't. Don't get upset because it takes time. Literally, some
       | homework may take 4 hours. Just accept that and you'll enjoy it
       | and you'll do well. If you think it's an hour a night of work,
       | you will fail.
        
       | kleiba wrote:
       | Don't forget your social life. Don't forget to study.
        
       | zengid wrote:
       | Two main points. Care about the details, but don't get
       | overwhelmed.
       | 
       | 1) Care about the details. Programming languages are incredibly
       | powerful, but there is a lot of subtle effects that even a tiny
       | change of syntax can make (`*` vs `&` in C++ for instance). Try
       | to pay attention to these details and their implications, because
       | that is the key to get to being more productive and also to not
       | making costly mistakes.
       | 
       | That being said, there is a limit to how many details you can
       | keep in your head at one time, so:
       | 
       | 2) Don't get overwhelmed. Just try to focus on the problems
       | you're trying to solve, and take a first step towards solving it.
       | IT WON'T BE PERFECT! Just keep going, and always acknowledge that
       | there might be a better solution if you need to go back and
       | improve on what you have. This is what I believe technical
       | interviewers will be looking for: "Can this individual solve
       | problems, and know the value of the trade-offs at hand. Do they
       | know why choosing 'x' over 'y' is the better choice in this
       | situation, and do they also know the cost of choosing 'x' now?".
       | You can only spend so much time worrying about details if you
       | have a deadline to meet, so sometimes you just have to make a
       | decision and live with it.
       | 
       | Good luck and godspeed.
        
       | dehrmann wrote:
       | Be mindful of your program's retention rate. My first CS class
       | has a very bimodal distribution (this is common in CS classes),
       | and about half the students weren't in the followup class next
       | semester. We lost another third after that semester. The
       | engineering program at my school was run similarly--only about a
       | third of students entering the program would graduate with an
       | engineering degree.
       | 
       | Not every school is run like this, but it's something to be aware
       | of.
       | 
       | Don't immediately freak out if you get a 70% on your first
       | Physics exam. A lot of science and math classes are graded on
       | curves, and professors don't want to see too many (or any)
       | perfect scores. I had one class where 25% was the lowest passing
       | score on an exam.
       | 
       | Especially at research universities, professors are often more
       | interested in research than teaching. Even when it's not
       | obviously that bad, they're worse at teaching and care less than
       | the average high school teacher.
       | 
       | Try to get out and have some fun.
       | 
       | Also do something that's somehow very different than programming.
       | I majored in CS, but got three minors (two in liberal arts), and
       | even found time to take a golf class and a scientific
       | glassblowing class. But even intramural sports are good.
        
       | RNeff wrote:
       | College is more than just learning a vocation. Another goal is
       | evolving yourself into a well rounded human being. Each quarter /
       | semester take one course outside your comfort zone. Public
       | speaking, improv theater, drawing, photography, music,
       | philosophy, film production, drama, writing. Join a non-tech
       | club. Learn new stuff, and how to relate to non-nerds. Expand
       | your abilities, world view, and persistence.
        
         | schoolornot wrote:
         | I think more people who be apt to do this if electives were
         | pass/fail. There were tons of interesting classes available
         | that I could have taken but chose not to because I had a decent
         | GPA in major reqs.
        
           | MattGaiser wrote:
           | My university gives certain faculties a certain number of
           | pass/fails for this very reason.
        
       | dahart wrote:
       | > I'm more interested in knowing what I should do now to give me
       | an advantage in getting a job or otherwise.
       | 
       | Always stay curious, challenge yourself, and have fun.
       | 
       | Take charge of your education, talk to your professors during
       | class, visit them during office hours, interrupt the class to ask
       | questions when you don't understand. I was always scared to be
       | noisy in public, but finally discovered in a grad school math
       | class that when I didn't get it and I spoke up, other people in
       | the class would thank me later because they were in the same
       | boat, and I learned faster.
       | 
       | Try to find an undergrad research project.
       | 
       | Do an internship between junior & senior year.
       | 
       | When you're a senior, start researching which companies you like.
       | Read about job interviews and how to do well. Practice some job
       | interviews! You'll be ahead of the majority of applicants if you
       | do any practicing at all. Learn what companies want. (Hint:
       | superior coding skills often aren't the top item in their list.)
       | 
       | Also, exercise (I'm not kidding, it doesn't matter how, but this
       | will help your CS career, your life, and your job prospects.)
        
       | abhinuvpitale wrote:
       | This probably sounds too cheesy, but don't forget to have fun!
       | So, try different domains of CS, and see which one excites you
       | the most!
       | 
       | There are a lot of subtleties of programming, algorithms and
       | there are enough domains to choose from. So, don't follow the
       | crowd, try enough new things to know what excites you, and then
       | be a master at it!
        
       | currymj wrote:
       | take linear algebra ASAP. it's probably the single most useful
       | course you can take at a university.
        
       | dehrmann wrote:
       | I'm trying to decide what the right call is if school is online-
       | only in the fall. On one hand, a lot of what you're paying for is
       | in-person instruction and all the other experiences you get in
       | college. If it's online, it's not worth $5k-$10k for a semester.
       | On the other, if a college says you can defer, there might not be
       | room in a year because of how many people deferred, and the
       | longer your break between high school and college, you're either
       | less likely to actually go to college or less likely to graduate.
        
       | dilap wrote:
       | look into ACM aka ICPC programming competitions -- super-fun,
       | you'll learn tons, & job interviews will seem easy in comparison
        
       | zekehernandez wrote:
       | You should know why you want a degree in CS. Because if it's
       | solely to get a job in software development, know that it's one
       | of the longest and most expensive ways to reach that goal,
       | especially since you've been coding for such a long time. There
       | are many other reasons one would want to go to college, and if
       | they apply to you, feel free to disregard this comment. But to
       | reiterate, if your only goal is to be a software developer, I
       | would try to see if someone will hire you with the experience you
       | have now, or maybe do a bootcamp of sorts.
       | 
       | Let me add more nuance: I'm not trying to say that a CS major
       | won't be valuable to a software developer, or that it doesn't
       | have advantages over a bootcamp-like thing, or just raw
       | experience. But there are tradeoffs, and I think a lot depends on
       | what kind of software development you want to do.
        
         | mixmastamyk wrote:
         | Disagree. Skip a CS degree and be instantly skipped over for
         | coveted jobs. Sure you'll still get _a_ job. Ask me how I know.
        
           | Ologn wrote:
           | I think these are good times for this theory of not needing a
           | CS degree to be tested. I am thinking of Google's recent
           | rescinding of offers to thousands of contractors, or the
           | latest from https://layoffs.fyi/tracker . Lots of companies
           | have frozen hiring.
           | 
           | I know I would not want to be among the "I did some coding on
           | my own, and a bootcamp for a few months" brigade. Also
           | someone is of this age and is not thinking of it, but in some
           | years time how will they feel in tough times when they have
           | no degree and have a mortgage and kids, and the wife just
           | told them another kid is on the way, and their current job is
           | shaky or they just got laid off?
           | 
           | Of course you can always point to outliers like John Carmack
           | and what have you.
           | 
           | I don't see how getting a CS degree is "the longest" way to
           | reach that goal. You will have to learn most of this stuff
           | any how (unless you never learn it and want to be doing low
           | level low paying CRUD work in thirty years). The only
           | difference is you get a degree when doing it, plus professors
           | with office hours, peers studying the same thing you are etc.
           | College is flexible - you can study for four years, or you
           | can get a full-time job and take one class a semester at
           | night or on weekends. The latter way is longer, but
           | eventually you graduate.
           | 
           | As far as expenses - you can go to an expensive private
           | school, or you can go to an affordable but decent state
           | school. And if you want an impressive college name at some
           | point but money is an issue at the moment - get a Bachelor's
           | from a state school, then get an advanced degree at a fancy,
           | expensive school at some future point.
           | 
           | Look at all the layoffs and rescinded offers and hiring
           | freezes and ask if you would prefer not to have a degree now.
           | If you send your resume in but you don't get a response from
           | a high percentage of them - maybe it's because they got a lot
           | of resumes, and only kept the ones of people who had degrees.
        
             | dehrmann wrote:
             | > I know I would not want to be among the "I did some
             | coding on my own, and a bootcamp for a few months" brigade.
             | 
             | Especially when the resume next to yours is someone from a
             | top-20 CS program who's been at AirbnUberLyft for 4 years.
        
         | fish45 wrote:
         | To be honest, I would consider finding some sort of bootcamp
         | type thing if not for my parents being pretty dead set on
         | college. I do have a lot of stuff I want to learn which will,
         | in my limited experience, be a lot easier to to understand with
         | a formal education.
         | 
         | I've been looking for a software dev job for the past few
         | months and almost everything I've found that's more than a
         | WordPress/shopify job wants a bachelor's. Do you have any
         | advice for getting a software dev job straight out of high
         | school?
        
           | jrumbut wrote:
           | Start with a WordPress/Shopify job and then look for ways to
           | expand your horizons.
           | 
           | Struggling startups, small consulting companies, they also
           | have more ability to bring someone in straight out of high
           | school so even if they say "bachelor's required" still apply.
        
           | mikaelmello wrote:
           | That depends on what type of job and career you are looking
           | for, CS is a pretty broad field.
           | 
           | If you are looking for one of those high paying jobs in the
           | top companies and want them without a degree, you will need
           | to impress much more than your graduated peers.
        
           | analog31 wrote:
           | I graduated from high school in 1982, and already knew how to
           | program. I was keenly interested in programming, and my mom
           | was teaching intro CS courses at a local community college.
           | Now her advice may be outdated, but it was that programming
           | _per se_ is too easy to justify 4 years of college study, if
           | that 's what you want to do for a living. Also at the time,
           | many of the colleges didn't really have full blown CS
           | departments.
           | 
           | I ended up teaching myself programming (and electronics)
           | while doing a double major in math and physics, which led me
           | to develop enough of an interest that I continued in physics
           | through grad school.
           | 
           | I had a summer internship at a computing facility, which led
           | me to think that a pure programming job would actually be
           | kind of boring. Again, this was long ago, and is related to
           | my interests and not yours.
           | 
           | Today, I program. A lot. In fact, if you walk past my office
           | (my basement right now), you've got a 50% or better chance of
           | seeing a code editor up on my screen. But I use programming
           | as a problem solving tool, and am not employed as a
           | programmer. Good programming skill is a "force multiplier"
           | for virtually any occupation.
           | 
           | One thing about college is that _many_ students change their
           | majors. College is a place where you can be exposed to a
           | whole variety of fields, and where you can soak up the vibe
           | of a field and get excited about it. I don 't know where I'd
           | have found my love of physics at a coding boot camp.
           | 
           | CS attracts a lot of students who are interested in
           | computers, or who hear that it's lucrative, but are not
           | necessarily interested in computer science as an end unto
           | itself. But, figuring this out is part of the college
           | experience!
        
       ___________________________________________________________________
       (page generated 2020-05-31 23:00 UTC)