6 ms·
CS is less about coding and more about thinking analytically about coding. I started coding at 11, but some of my college classes were still pretty difficult. I
by _t0du 6y ago
CS is less about coding and more about thinking analytically about coding. I started coding at 11, but some of my college classes were still pretty difficult. I wouldn't assume your classes will be a cakewalk - definitely put the time into studying your material even if you think it's easy.
With respect to getting a job - I would think about programming as a tool. What industry do you want to use that tool on? I would think long and hard about that and consider double majoring/minoring in that new thing. Physics, math, business, whatever. Computer Science + some area of study where you can use CS for the betterment of an industry (outside of CS) will leave you in the best position to do well.
I would also suggest really focusing on Data Structures/Algorithms. Worst case, you'll be good at whiteboard interviews and can get a job at a FAANG company.
Network, hard. Your professors probably know lots of people, and your classmates (in your major) will go on to get jobs you might be interested in. Develop connections with the people around you, and become a person they want to work with in the future.
Above all, don't waste your college time. Actually give a shit about what you're learning. Try new things, make mistakes, have fun, but also work hard on your degree.
- fish45 6y agoI haven't thought about trying to be a developer in a non-IT field; it seems like something I'd really like to do. I spend most of my time coding on side projects, so as it turns out I'm not great at algorithms. Recently I've learned that I can only really do easy problems on Leetcode/codeforces etc, and I've been trying to improve. Thanks for the advice!
- ethbro 6y agoThe key to doing this is to look at the economics: is it possible for my customer to pay me what I want to be paid? This even applies internally, if your customers are other parts of your company. MaxCompensation = UnitValue * NumberOfUnits In tech companies, NumberOfUnits is commonly one million+. In non-tech companies... it's much less. So either deliver more value (petrogeology simulations!) or work for a specialized company that services multiple clients (healthcare software!). Be aware the former can be morally onerous, and the latter craven to protect their (relatively few) key clients. That said, if done right, I find it way more interesting. Solving problems in {x field} with software means you get to learn about {x field} and software! Just be sure to self-motivate on keeping your skills up to date. It's easy to get complacent and rust, given there's not the same competitive tech pressure (for better and worse).
- alexbanks 6y agoThe most fulfilling area I've ever worked was with wind turbines. Making software for things that actually mattered, as opposed to dumbass ad tech for ad tech's sake, was very enriching for me. With respect to algorithms - nobody starts out good with them (except Knuth), it takes practice. Don't give up. Also recognize Leetcode for what it is - practice. It's okay to do a problem poorly/not figure something out. It doesn't actually determine anything about your intelligence or trajectory in the field.
- foxtr0t 6y ago> Worst case, you'll be good at whiteboard interviews and can get a job at a FAANG company. Since when is this the worst case scenario for a CS grad? Last I checked, FAANGs value and compensate their engineers more than basically every other industry. I double majored in economics and comp sci, then got a masters in cs/ml. I didn't plan on going to a FAANG until I realized a few things: 1. Staying in academia was clearly not an option for me. I still have friends who are miserable trying to get through their postdocs and I can't deal with the hobnobbery that some departments exhibit, the political infighting etc. I felt like if I got into the wrong program for a PhD I'd miss out on 5-8 years of my 20s and early 30s. 2. Did the startup thing. Found that most smaller startups are 90% talk and marketing and nothing really groundbreaking happens there. There are a few exceptions to that and if you're lucky enough to find one of those companies, good for you. 3. Other industries that don't focus on software often don't value SWEs the same way. It wasn't until a few years ago that the IT guy who maintained everyones desktops at a small financial firm and the person who wrote the internal software were the same individual. There is nothing wrong with those roles, but if you have the skills most CS grads acquire, you can specialize much more if you find a more software focused role 4. Starting my own thing isn't an option for me personally. I started some companies very early on when in doing my first degree (2009-11) and they failed, great experiences, don't need them again. If this is for you, then good, go for it. 5. FAANGs and other large software corps give you the structure to focus on work, like a laser, and then turn off and still maintain a healthy work/life balance. There are still politics and other bullshit to deal with, but your chances of finding a good team that minimize bullshit are high, in my experience. This doesn't happen at most startups where you have to play many roles. At a FAANG if you are really into a project, you're free to dive into it 24/7. If you're at a different phase in your life, say you just had your first child, you can take a step back and slow down for a bit. Nobody is going to ask "why haven't you pushed 50 diffs this week?" And obviously there is the pay.
- oneplane 6y agoThe thing with the FAANGs is that they can be rather unfulfilling. At first, when you are fresh out of the playground going in to commercial engineering, everything seems great, because you suddenly get paid to do a thing you like, and there is all this technology and information and people. But that is not unique to FAANGs, and not unique to CS/IT. At some point you usually end up wanting more, either a more fulfilling job or a job that pays more. The former is probably going to have a human or societal component, the latter will drive you more to banks, economic institutions, insurance, government contractors, exchanges and similar jobs.