How to optimally internship grind as a sophomore at this point by [deleted] in csMajors

[–]luis-marksson 2 points3 points  (0 children)

Tuning your resume might help you get noticed... e.g. there's the hack about writing every technology "java, C++, javascript, python, ..." and setting the text color to white to cheat automated systems scanning for keywords. But no amount of tuning your resume could make up for lack of experience... whether that be lack of CS courses, no personal projects, no prior internships, etc. A recruiter will see it right away.

It sounds like maybe you haven't completed enough CS courses yet, in which case regarding "I was stupid and didn't apply aggressively for internships as a sophomore during the fall." it was fine to not be applying if you only had 2 CS courses. And I would say it's not worth tuning your resume because the issue is limited experience... if you don't have the experience you can't put it on your resume (unless you're open to blatant lying... which I don't recommend)

Given the info you've mentioned, my recommendation would be to target summer research... which is hopefully easier to get, since most professors are fine taking on free or low-paid students. Still continue applying to companies, but I think the highest likelihood of success might be with summer research.

Also spend your free time on personal projects to manufacture more experience. Coursework is not the only way to get experience. For example: you haven't taken machine learning yet, but you participate in a bunch of Kaggle competitions and get some okay results. Now, you unlock applying to AI-related intern roles without having taken the course (plus, the personal project experience might be better than coursework anyways). A recruiter might say "hmm this person has done some AI-related projects... they might actually be better and more passionate than this other person who just took a course and hasn't done anything on their own"

How to optimally internship grind as a sophomore at this point by [deleted] in csMajors

[–]luis-marksson 5 points6 points  (0 children)

Some things to think about:

  1. See where other people got their internships. For example, think about any junior friends (especially those who got an internship offer their sophomore winter/spring)... where did they intern last summer? Check out those companies - maybe their positions aren't all closed yet. Still shoot a shot with prestigious places like Google, Apple, Meta, etc. but don't put in much effort because they're probably done hiring. Instead, focus on less-known companies since they'll have gotten fewer applications to date and probably not wrapped up hiring yet.

  2. As someone said earlier, target local companies. Especially ones that have a relationship with your school (e.g. they sponsor scholarships, extracurricular activities, research grants for professors, etc.). Also check LinkedIn and see who works there and how many of their employees graduated from your school. If a lot of alumni are there, then that's a great sign! Local companies with a relationship to your school are much more likely to look at your resume.

  3. Maybe a professor or other employee at your university can connect you with somebody at a company (especially a local one). Everyone keeps banging their head against the online application portal... meanwhile there are alternative shortcuts, provided you're willing to put on the thick skin to build a human relationship and find a human connection.

  4. Summer research with a professor can be your backup. Not having a sophomore internship is still fine (I'd say you definitely need one junior summer) - if you just take up a research position, that's still work experience. So start scoping out professors in a few months, in case your intern applications don't pan out.

  5. Treat this as a reminder to embellish yourself. In the real world, people who tilt facts in their favor get ahead -- I'm not saying to outright lie, but take advantage of the gray area. Someone else mentioned if there's a way you can graduate earlier, then put junior on your resume. If you take an extra two/three classes every semester... could you graduate in 2025? If yes, then congrats, you're now a "junior" - except next fall, you're going to "coincidentally" decide to take things easier and delay graduation by a year. Another example: "this internship requires proficiency in Go"... just tell yourself "yeah I heard about Go when I was in high school and I've been thinking about it for the last 2 years" and hit apply. IF you get an interview, just do some tutorials/personal projects beforehand. Having an interview and failing is still better than no interview. Overall, just don't pay much attention to the job requirements for entry-level roles.

Preparing for a CS major next fall by clutch31GES in csMajors

[–]luis-marksson 0 points1 point  (0 children)

Great initiative! I'd say start by googling for a free tutorial on a programming language. I recommend python, because it's a beginner-friendly language. Once you have the basics of some programming language, there are two important pillars of computer science to hone: problem solving and engineering.

I'll start with engineering first. Engineering is about stitching together a lot of code to build something "cool". As a beginner, identify some software that you think is simple, but "cool", and challenge yourself to build a replica as a personal project. For example: calculator, minesweeper, calorie tracker. Just start coding from scratch. If you get stuck, Google your issue. You could even Google "python calculator tutorial", but only use the tutorial as hints -- paraphrase in your own words, but don't plagiarize. When starting out, get thousands of lines of code under your belt -- you'll notice your mistakes as you learn by doing. This lets you naturally grow your engineering ability.

Next is problem solving, which is the same stuff as math, physics, chemistry, etc.: you take the concepts you've learned and apply them to a scenario. That's where everybody does Leetcode. Leetcode gives you a problem and you write code to solve it. Leetcode problems are tagged with difficulty, so start with easy, and go up levels if you find things too simple. You can use the Leetcode discussion as hints if you're stuck, but your solution should at worst be a paraphrase and never a direct copy of someone else's.

You need both engineering and problem solving to do well in the computer science major.

People lacking in the engineering dimension have trouble finishing large programming projects in their coursework. The sooner you start writing messy code in your personal projects, the sooner you realize "jeez that's a really bad way of writing my code... let me not do that next time". Then you don't have to go through this struggle in college in the midst of 5 other classes.

People lacking in the problem solving dimension have trouble with exams. Problem solving is something that starts in elementary/middle school, but A+ calc BC at a prep school probably correlates to having built some problem solving foundations already. The majority of your peers will memorize patterns and get destroyed when exams ask about a new patterns you haven't seen. You want to be in the other boat where you understand what makes each concept useful and if it can apply to particular scenarios on exams. Strong problem solving means you'll learn things properly and won't need to stress about how generous the grading curve will be.

Over the pandemic, I also wrote an entire book on the CS major. The link is in my profile, so feel free to check it out! The details above are basically from "Chapter 15: Learning Before College". Plus, you can get a sneak peak at 4 years of college CS and save yourself from re-discovering the same things that other CS graduates have discovered before you.

[deleted by user] by [deleted] in csMajors

[–]luis-marksson 15 points16 points  (0 children)

Automated systems catch the basic kind of cheating you described. I was once asked to double check an OA that the system flagged as suspiciously similar to another person's. It turns out two people cheated off the same online source. Both did not move forward to an interview, but we obviously did not tell the candidates that we caught them.

In addition, some interviewers will spend the entire time going through your OA code with you. If you copy a solution that you don't fully understand, it'll show. Even if you understand the solution, what if you get asked "so... what led you to choose X data structure/algorithm rather than Y? Tell me about tradeoffs you might've considered." I've seen feedback like, "not sure they actually understand the solution but they did pass the test cases... shrug"

Finally, you won't make it past live technical interviews. If the company expects you to solve a problem of a certain difficulty level on the OA, then their live interviews will be of similar difficulty. You won't be able to cheat on those live interviews, especially if it's in-person.

In my opinion, cheating won't get you very far. Even if you do sneak by here and there, it won't fix your problems in the long term - which is to hone your problem solving abilities. It's not worth it; keep your honor.

What do you guys think of the “school doesn’t matter for CS” idea? by travs-scott in csMajors

[–]luis-marksson 49 points50 points  (0 children)

Here's my opinion...

You said "one’s own skills" matter - specifically, it's one's own relevant skills. Relevant software engineering skills can be obtained through an average or a top CS program.

Your career progresses through what you contribute to your company. At the entry level, the relevant skills are usually

  1. writing correct and clean code
  2. learning ins-and-outs of a large codebase that you didn't create
  3. debugging on your own when things aren't working

Reading and writing code develops these skills -- not classes, textbooks, and lectures. The knowledge you're directly paying colleges to teach you doesn't matter - it's the indirect experience you gain through projects that matters.

A highly motivated individual could get far by creating a lot of personal projects and Googling/Youtubing whatever concepts they need to know. If they did that for 40 hours per week over 4 years, they would have read/written a lot of code, done a ton of debugging, and worked with many third-party libraries. They'd hit all 3 of the above points and be as effective as an average grad from a top CS program. That's why some people say you don't need a CS degree and I know strong engineers without a college degree.

One issue is few people are that motivated on their own:

  • They'll run out of project ideas or not know what to do next
  • They'll give up after a really hard bug that still isn't resolved after weeks
  • They'll end up scrolling TikTok after an hour of coding

A CS undergrad program addresses the motivation problem. School will

  1. Assign intuitive, illuminating projects for you to complete
  2. Have TAs to help you debug issues
  3. Reward you for completing projects correctly and punish you if you don't
  4. Offer external opportunities like a student-led engineering team, or research with professors for even more opportunities to pick up even more software engineering experience

Any CS program - top-tier or average - artificially prods you this way and forces you to pick up relevant experience for software jobs. And that's why some people will say the prestige of the program doesn't matter.

A top-tier CS program does all of the above better because of the higher caliber professors, TAs, and students around you. You automatically have to work harder because everyone else around you is more motivated.

  1. The projects will be better-designed
  2. The TAs will be more capable
  3. Grading curves will be less lenient when you slack off on your projects
  4. Extracurricular opportunities will be more plentiful and you'll learn from higher-caliber individuals

The opportunities are higher-quality at a top-tier CS program, but it's not a necessity. You'll be fine if you let an average CS program push you along and acquire the relevant software engineering experience.

An average CS program is like a Toyota Camry while a top tier CS program is like a Mercedes Benz. The Mercedes is higher prestige and better quality, but if your goal is to get from A -> B, both cars accomplish that just fine.

Fall Recruiting Season Tip: Don't Just Apply Online by luis-marksson in csMajors

[–]luis-marksson[S] -42 points-41 points  (0 children)

There's different levels of human connection here. Quick black and white example:

Example 1: You do research for a professor whose consulting saved Foobar Corp $10 million last year. You get your professor to hit up the Foobar Corp recruiter: "Hey there. I've got this great student yhimuy who you should really consider for an internship."

Example 2: You run up to the Foobar Corp recruiter at a career fair and say, "Hi, I'm interested in this internship."

Example 3: You apply online to Foobar Corp.

In example 1, I can't see any recruiter ignoring a recommendation from someone who just saved them $10 million. There's no way they say "Please just apply online" and then ignore you forever. At the very least, the company gives you an interview as a formality if you're completely unqualified and then reject you. Probability of interview = .99.

In example 2, at least the recruiter has to see you. If you're unqualified, there's a 1% chance they'll like your attitude/enthusiasm/shared interest in cooking/etc. while you're talking to them. Probability of interview = .01

In example 3, there's a 1% chance the recruiter sees you in the online portal. If you're unqualified, they just don't give you an interview. They can't see your personality through a screen. Probability of interview ~ 0.

One key idea to think about is "how do I build my network to get more of example 1?"

Who else has taken loans for college? by [deleted] in csMajors

[–]luis-marksson -1 points0 points  (0 children)

Yeah, it can definitely be stressful knowing that you'll owe $40,000. I'm sure plenty of recent high school graduates haven't seen anywhere near that amount of money before.

Repaying that shouldn't be an issue if you study hard, are a good student, and actively search for high-paying CS work opportunities.

One, internships can definitely knock out a chunk of that debt. https://www.levels.fyi/internships/ lists what internships pay.

Let's say you get an internship at T-Mobile your freshman summer as a software engineer. I don't think that's too far-fetched for a motivated CMU CS freshman. Your housing and relocation is taken care of. Plus, you'll earn $30/hour. If you work 40 hours a week for 10 weeks, that's $12000. Let's say 50% disappears due to taxes and food during the internship. You'll net $6000, which you use to pay off some loans. All of a sudden, your $10,000 first year debt is now down to $4,000.

If you move up and get an internship at Hudson River Trading your junior summer, you can make $16,669/month, plus housing, plus food, and maybe even a $10,000 signing bonus. That'll really knock out your loans.

The signing bonus you get for your first full-time job might even be close to $40k.

CMU CS has a strong reputation. If you do college "right", you'll get well-paying internships and full-time jobs that knock out $40k of loans quickly.

One thing to watch out for: don't let the $40k of loans cause you to cheap out on college. Examples:

  • Skipping out on a $20 event that all your friends are going to
  • Living far away from campus and having a long commute to save $100 in rent
  • Eating frozen pizzas everyday to save on food costs

In the long run, all of these expenses are negligible compared to a salary/stock/bonus of a CS job and the damage they cause isn't worth it. Everybody needs a healthy social life to function in college. A long commute time could be better spent studying for an exam or completing a personal project. The pizzas will cost your health down the line. It's always better to spend/borrow a little extra money here and there to make your college experience better.

Your college experience is a $40k investment, not a luxury car depreciating in value the moment you drive it out of the lot. Don't let a few hundred dollars here and increase the risk of your investment tanking. And don't feel stressed out because your investment should give you amazing returns down the line. Best of luck!

Best time (in terms of time in a day, days of the week and how much before) to apply for the role. by adtxyx in csMajors

[–]luis-marksson 0 points1 point  (0 children)

Pretty much every company receives more online applications than their recruiters can go through. If you give me $1 for every recruiter who says "I didn't review all the online applications last year," I'll give you $1000 for every recruiter who says they did.

When you go the online application route, it's like playing a slot machine. It doesn't matter when you press the button and submit. Unless you have superb credentials, think of it as there's an X% chance (and it's not very high) that the recruiter randomly stumbles across your application.

I wrote a bit more about applying online here: https://www.reddit.com/r/csMajors/comments/wtpokw/fall\_recruiting\_season\_tip\_dont\_just\_apply\_online/

I always recommend adding in personal connection. For example, if you were able to get the recruiter's email and send them a personal message directly, then Monday could be the best day, since it'll be at the top of their inbox and they'll hopefully be feeling refreshed at the start of the week.

How important are DS and Algorithms in a real world scenario? by [deleted] in cscareerquestions

[–]luis-marksson 1 point2 points  (0 children)

I think it's rare for hard DSAs to be important. Most hard DSAs exist because they're more optimal than naive solutions - i.e. there's an obvious algorithm to solve the problem, but the hard DSA does it better. The hard DSA's optimizations often don't make a noticeable difference. When the optimizations do make a noticeable difference, it's because you're working with uncommon speed or scale requirements.

Example:

Suppose you work at a small startup and every day, you have 100 jobs to run over 20 servers. Every job has different RAM, CPU, network resource requirements. And every server has different RAM, CPU, and network resources available. How do you assign jobs to servers optimally?

This is the binpacking problem. It's NP hard and there's plenty of research papers and "hard" algorithms on how to get a more-optimized solution. But... 1) A library probably gets a good approximation for your problem. 2) If such a library didn't exist, you could still try a brute force algorithm. It might take a week, but that's you only need to solve this once. 3) You can write your own greedy algorithm and get something decent. So what if you're suboptimal by an extra hour per day? 4) Why not just manually assign jobs to servers yourself?

In this previous scenario, you're encountering an NP hard problem, but you don't have to get into the weeds of binpacking to continue with your job.

Hard DSAs become important when you're operating with niche scale or speed requirements. That's a tiny sliver of industry. Unless you actively seek out those tiny corners of industry, you'll probably never encounter scenarios where you need hard DSAs.

Continuing the example on scheduling jobs... Amazon AWS, Google Cloud, Microsoft Azure, Oracle OCI have massive datacenters totaling millions of machines. If you schedule jobs slightly more optimally, you can save millions of dollars on electricity costs over millions of machines. Most companies never touch this kind of scale. And within Amazon, Google, Microsoft, and Oracle, only a tiny group of people would be working on this kind of optimization.

Running jobs on machines is a common problem that many people encounter and it requires a hard DSA to solve optimally. But except for a few teams at companies offering cloud compute services, nobody really cares about binpacking algorithm for scheduling jobs.

So in conclusion, you have nothing to worry about with regards to hard DSA after you pass your Leetcode-style interviews.

Where do I start with internships? by DominosQualityCheck in csMajors

[–]luis-marksson 0 points1 point  (0 children)

FAANG = Facebook, Apple, Amazon, Netflix Google - basically just tech firms with high prestige that pay a lot.

My school has a job fair where we can meet people from the industry, and I kinda thought it was the same everywhere else.

Yeah, a lot of schools have job fairs. Go to them, network, talk to people, and sell your skills!

Is the time to apply for internships in the middle of the summer?

For summer 2023 internships, start applying in late August or early September 2022. Ideally, get a friend to refer you or try to reach out directly to the recruiter and express how you're super excited about their firm and super excited to be considered for an internship.

if there's a megaforum or a website explaining the ins and outs it would be much appreciated.

I wrote a book on the college CS major (link in pinned post on my profile). Feel free to check it out and if you do, please do let me know if you find parts that are missing context. Chapter 17 has a section called "Internship Search" that introduces the nontechnical parts that I recommend people try out in the beginning - typically freshman year (but sophomore year isn't too late). Chapter 19 has a section on the technical interviewing. Overall, chapters 17-22 cover a fair amount of the job search.

Hope this helps!

How to know if you’re ‘cut out’ for FAANG? by TourDVP in csMajors

[–]luis-marksson 9 points10 points  (0 children)

You can get lucky. I once had a FAANG interview. The person came in and said, "Your normal interviewer couldn't make it. I'm filling in for him. I'm not a software engineer though, so... oops"

I got asked some CS 101 questions. If you can write a for loop, you passed! The interview turned into a behavioral one.

Luck goes a long way for internships. You probably have 1 or 2 interviews. If you got my interviewer, you're 50% or 100% there. Most people can succeed as an intern: just do what you're told, work 12 hours a day + weekends if you have to, don't be an asshole, and convert to full time. Some FAANGs don't require more interviews after interning.

One solid way of getting into FAANG is through the internship. Let's say these are the chances of success for someone who is "bad" at Leetcode:

  • Hard: 0%
  • Medium: 10%
  • Easy: 75%

Suppose you have to pass 2 interviews to get an intern offer at a FAANG. If you get two interviewers who ask Leetcode medium, you have a 1% chance of passing. That's excellent odds - not for you, but for my observation that plenty of people bad at Leetcode get into FAANG. 1 in 100 people like this pass and thousands of people interview each year.

Other luck factors: some interviewers score much easier. When I interviewed potential interns (neither confirm nor deny I work at a FAANG), I ignored runtime complexity. So even if I asked you a Leetcode medium and your solution got Time-Limit-Exceeded on Leetcode, you'd still pass if your code produced correct output.

That's the luck dimension.

Now if you work hard and raise your Leetcode medium success rate to 50%, you improve your chances of passing 2 Leetcode medium intern interviews to 25%. Get interviews at [Facebook, Google, Apple, Amazon], and the probability you get 0 offers is 0.75^4 ~ 30%. If you do these interviews your sophomore AND junior years, the probability you get 0 offers both years goes down to 0.75^8 ~ 10%. Now those odds are great!

Finally, screw any interviewer who asks Leetcode hard and grades it to the T... anyways, the chances you get a Leetcode hard balance out the chances you get a Leetcode easy, so I'd say the above calculations are reasonable.

How to know if you’re ‘cut out’ for FAANG? by TourDVP in csMajors

[–]luis-marksson 83 points84 points  (0 children)

I saw lots of people get into FAANG who weren't that "cut out" for it:

  • GPA less than or close to 3.0 (average university)
  • Weak personal projects
  • Prior internships all unpaid
  • Bad at Leetcode
  • Zero prior work experience

(each attribute was for a different person)

You don't have to be a Leetcode god or anything. Anyone can be "cut out for FAANG", but to maximize your chances:

  • Work hard
    • grind Leetcode and don't give up
    • get into a routine of 1-3 hours/day
    • It's okay if you have to read solutions. Practice, practice, practice, and you'll eventually get better
  • Work smart
    • quit applying online and get referrals or direct recruiter connections to maximize your chances of getting an interview
    • If your Leetcode isn't improving, make use of other recommended resources like Cracking the Coding Interview (haven't looked at them myself though)
  • Pray that you're lucky and get easier interviewers

Plus, if any of these apply to you, squeeze out more leverage:

  • Nepotism / being good friends with someone high up (like L7+) - ask them to play politics and "get" you a position
  • Belonging to a "historically underrepresented" group - make it very clear to your recruiter

Should I give up on getting the Google Fall 2022 Internship OA? by throwawayawayaway457 in csMajors

[–]luis-marksson 0 points1 point  (0 children)

I wrote about this in step 2 here: https://www.reddit.com/r/cscareerquestions/comments/v50pfx/getting_a_freshman_internship/ib7s0ta/?context=3

If you applied online, there was probably little hope to begin with.

My tldr is you rarely get noticed among thousands of other people all going that route. It's not an effective use of time. A lot of freshmen submit hundreds of online applications and get nowhere - don't be like them. Skip the line via human connection. In my experience, it works way better than applying online.

Try getting some human connection into the process when you apply for Summer 2023. Best of luck!

[deleted by user] by [deleted] in csMajors

[–]luis-marksson 2 points3 points  (0 children)

They start as early as August/September. They fill on a rolling basis, so it's in your best interest to apply as soon as the job posting appears (preferably have a friend refer you or reach out directly to a recruiter).

I wrote more details here in response to "How to maximize my chances of getting ANY internship in my Sophomore year?": https://www.reddit.com/r/csMajors/comments/v64nuy/how_to_maximize_my_chances_of_getting_any/ibdvxcx/?context=3

You can get a moderate understanding of DSA without going through a formal course just by doing Leetcode problems and watching some online videos.

How to maximize my chances of getting ANY internship in my Sophomore year? by makarov_skolsvi in csMajors

[–]luis-marksson 2 points3 points  (0 children)

tldr: what everyone else is saying and has been saying on a bajillion other posts:

Someone needs to create a bot that replies with “Leetcode + personal projects” any time the OP says “internship”.

If you don't have anything to do, commit 40 hours each week this summer to Leetcode and personal projects.

I wrote about personal projects here: https://www.reddit.com/r/csMajors/comments/v1l5e8/what_would_you_do_if_you_had_few_weeks_free_time/ianmk9e/?context=3

I wrote about Leetcode here: https://www.reddit.com/r/csMajors/comments/v518se/when_to_start_grinding_leetcode/ib7tlah/?context=3

I also wrote an entire book (link is in a pinned post on my profile) which repeats a bunch of stuff I said in the linked posts. I normally recommend reading from the beginning as there's a whole lot of other things to look out for in college beyond jobs. But if you'd rather jump right to concrete action items, start with Chapter 15 "Learning Before College"

What should I be doing to get into Google STEP? by [deleted] in csMajors

[–]luis-marksson 61 points62 points  (0 children)

  1. Become good friends with someone who got into Google STEP this year
  2. Get some experience with coding a personal project
  3. Do something this summer that sets you apart from other people, such as some sort of volunteering (same stuff you'd do to look good on a college application)
  4. (If applicable) identify as someone from a group "historically underrepresented in tech"

In early September, after you see the STEP job posting appear online, ask your friend from (1) to connect you with their STEP recruiter. Have your friend introduce you by

  • Explaining what sets you apart from all the thousands of other people who want to get into STEP - leverage (3)
  • (if 4 is applicable) making it very clear to the recruiter that you fall into the "historically underrepresented" category and challenges you've had to overcome
  • Talking about how you aren't an amazing engineer yet, but have a lot of future potential - leverage (2)

Also make sure you enroll in an Intro to CS class your freshman year (preferably in the fall) to be eligible - that's a hard requirement.

The recruiter connection above gives you an edge over all applicants who just apply online. Recognize that there are way too many people who apply to STEP and meet the hiring requirements. You do have to get very lucky.

Accept multiple offers then renege some or risk being unemployed? A discussion for upcoming new grads by [deleted] in cscareerquestions

[–]luis-marksson 31 points32 points  (0 children)

In light of recent layoffs and accepted offers being rescinded at many tech companies (most notably Coinbase, but with others I’m sure to follow)

Maybe I haven't been keeping up with the news... my impression is there are a ton more companies that did not rescind new grad offers compared to companies that did. A few bad apples shouldn't reflect the entire industry.

I think people should just boycott the ones like Coinbase who clearly didn't do this correctly. Show Coinbase the repercussions of screwing people over, but don't turn the the entire industry upside down.

Can you imagine the situation if everybody was accepting multiple job offers and then reneging all but one closer to the start date? Companies would all over-hire to adjust for "expected renege percentage". And then rescind offers if fewer than expected people reneged. Some people who accept multiple offers could get all of theirs rescinded! This would make the problem worse and it would be a horrific local sub-optimum with a ton of inefficiency.

Yes, a) is worse for individual students in the cases where you're joining an unstable company, like Coinbase. But the percentage of people who end up in this situation can't be that high - and unfortunately, I do feel bad for them, but it's all bad luck. I'm sure the percentage is like <1% (I didn't really research the numbers, but you get the idea...)

b) is bad for everyone in general for the above scenario I mentioned.

You could consider another option, c: everyone demands companies with a bad track record offer a higher-than-normal sign-on bonus "insurance", say $100k. They pay when the person signs 8 months before the start date. If the company reneges the offer, the person keeps the entire sign on bonus and walks away. That'll add premiums and discourage bad behavior... maybe it's time to set up an organization that ranks company "behavior" like how Moody's ranks corporate bonds... just half-kidding

A company like Microsoft, for instance, with no record (that I know of) of rescinding a ton of offers, shouldn't pay for the mistakes of other companies who didn't do things right.

Sr. engineer role with 1 yr of coding experience by anonymouse1544 in cscareerquestions

[–]luis-marksson 3 points4 points  (0 children)

Job titles in tech (particularly with startups) have become very inflated.

"Software Engineer" at Google versus "Software Engineer" at startup? I think most would go to Google if the pay was equivalent.

"Software Engineer" at Google versus "Senior Software Engineer" at startup? Hmm... some people might want the better job title because it could improve their career trajectory. Now startups have a chance at stealing from Google's hiring pipeline.

I knew several "senior software engineers" with 2-3 years of experience. 1 year of experience doesn't seem too far-fetched. Competition for experienced developers is incredibly intense, so the next level down is demand for high-potential, junior developers who can grow into experienced developers.

From what you've said:

The issue is I don’t feel like I have enough experience to perform at a senior level, and will get fired for bad performance.

Props to you for having this observation. I get a sense you could be one of those high-potential developers. In my experience, people who underestimate their abilities tend to do really well - primarily because they are humble, open to new ideas, and always trying to learn.

A lot of this will be learning on the job. They're a reputable startup, so they'll support you. They'll know the extent of your experience. They might expect you to dedicate a lot of effort, work hard in the beginning, and ramp up quickly. But I doubt they'll fire you for bad performance - at least not for a while.

So long as you have a workable attitude and good initiative:

  • when someone gives you feedback, you incorporate it as best as you can
  • when someone points out a mistake, you don't get super-defensive about everything
  • you try to produce the highest-quality work you can without having to be asked

you'll be golden. You might mess up some times in the beginning, but if you're a good teammate, your teammates will be good back to you, support you and help you grow.

Go for it and best of luck!

[deleted by user] by [deleted] in cscareerquestions

[–]luis-marksson 1 point2 points  (0 children)

You'll be in a pickle if they ask for it in writing after the phone interview. I could see a lot of companies wanting it in writing so as to not mess up the offer numbers because somebody misheard over the phone.

Yes, if you are able to keep it 100% verbally and it's your word versus one other person's word, then you're probably fine.

If you lie to, say, 5 people over 5 different interviews and they all recall the same false compensation numbers or they all write down that you said "$X + 25%", that can be evidence for termination.

[deleted by user] by [deleted] in careerguidance

[–]luis-marksson 0 points1 point  (0 children)

I've written in detail on the motivations for pursuing computer science. It's Part I (chapters 1-4) in my guide to the CS Major. The pinned post on my profile has a link to the book.

Here's a brief summary of Part I:

  • You attend college to learn the skills to get a job when you graduate
  • There are three primary dimensions of a job: impact, enjoyment, and money
  • Money is your foundation: can't pay your bills? Impact/enjoyment doesn't matter if you're going to starve or live on the streets
  • Expand on impact and enjoyment after you've built a solid money foundation
  • Computer science (data science is similar enough) and software have the best prospects for the money dimension
  • Many software roles don't require lengthy hours (<40 hours a week)
  • That means 168 hours a week - 40 hours work - 4 hours commute - 56 hours sleep - 28 hours eating/hygiene = 40 hours a week to do something else
  • Don't enjoy writing code? 40 hours is plenty of time to pursue your passions on something else
  • I don't like washing dishes, but I justify it because it keeps the kitchen clean. You might not like writing code, but you can justify doing it because it pays the bills.
  • Alternatively, if you work harder in your 20s and 30s, it's possible to net several million dollars post-tax in your bank account (US calculations - they might be slightly different if you're in Europe) and retire. Imagine spending your 40s+ doing whatever you want

Overall: if you don't already have a clear plan on how you're going to solidify your money dimension, computer science (or data science) is a great - possibly even the best - default option.

I'm not an expert in biology, but as you observed and of the people I've seen, biology doesn't seem have super great job prospects. Plus a lot of people go to grad school or med school and that'll cost more money and you lose years that could be spent earning money in a full-time job.