Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

teen phone cutie posted:

hey buddy i ain't doing an ounce of work off the clock. i'll do it my first day and get paid to do it, student or not :colbert:

:yeah:

Adbot
ADBOT LOVES YOU

durrneez
Feb 20, 2013

I like fish. I like to eat fish. I like to brush fish with a fish hairbrush. Do you like fish too?

teen phone cutie posted:

hey buddy i ain't doing an ounce of work off the clock. i'll do it my first day and get paid to do it, student or not :colbert:

hell yeah

Hadlock
Nov 9, 2004

This is kind of like hiring a welder, and then wanting to get paid to learn how to weld after they show up to work on their first day

Someone is going to wander in here and shout that university is about education, not job skills, but it's really alarming the number of students who have zero exposure to basic tooling, and the lack of desire to learn about the tools of their trade

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

Hadlock posted:

This is kind of like hiring a welder, and then wanting to get paid to learn how to weld after they show up to work on their first day

Someone is going to wander in here and shout that university is about education, not job skills, but it's really alarming the number of students who have zero exposure to basic tooling, and the lack of desire to learn about the tools of their trade

The value of a liberal arts education is intangible

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

leper khan posted:

The value of a liberal arts education is intangible

Much like the skills of a recent graduate

teen phone cutie
Jun 18, 2012

last year i rewrote something awful from scratch because i hate myself

Hadlock posted:

This is kind of like hiring a welder, and then wanting to get paid to learn how to weld after they show up to work on their first day

Someone is going to wander in here and shout that university is about education, not job skills, but it's really alarming the number of students who have zero exposure to basic tooling, and the lack of desire to learn about the tools of their trade

idk man all I'm saying is if I had an intern, I'd teach them to start work at 8, end work at 5, and not work a minute more, and that extends to setting up your work laptop. do that stuff on the company's dime

Jabor
Jul 16, 2010

#1 Loser at SpaceChem

Hadlock posted:

This is kind of like hiring a welder, and then wanting to get paid to learn how to weld after they show up to work on their first day

Someone is going to wander in here and shout that university is about education, not job skills, but it's really alarming the number of students who have zero exposure to basic tooling, and the lack of desire to learn about the tools of their trade

More like hiring an apprentice and then getting surprised that they want you to teach them the trade instead of being a fully qualified professional who is accepting apprentice rates for some reason.

If you're paying junior salaries then you're gonna have to put up with people learning on the job. Go pay out the nose for intermediates or seniors if you want someone that can hit the ground running.

Jabor fucked around with this message at 06:31 on Feb 23, 2022

Hadlock
Nov 9, 2004

teen phone cutie posted:

idk man all I'm saying is if I had an intern, I'd teach them to start work at 8, end work at 5, and not work a minute more, and that extends to setting up your work laptop. do that stuff on the company's dime

Oh, no I'm not saying they should setup their work laptop after hours. gently caress that poo poo. I just want a computer science major to, ya know, have a beginner's grasp of the basic tools of their trade beyond just their keyboard and compiler/interpreter before they go forth unto the world. Yeah getting your workspace organized properly is a company expense, no argument there.

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Hadlock posted:

This is kind of like hiring a welder, and then wanting to get paid to learn how to weld after they show up to work on their first day

Someone is going to wander in here and shout that university is about education, not job skills, but it's really alarming the number of students who have zero exposure to basic tooling, and the lack of desire to learn about the tools of their trade

Take the fight up with the degree program then. It's a crapshoot as to whether any tooling is covered in most programs let alone tooling that's relevant to engineering work.

If you're hiring out of college (or an intern in college) assume they know nothing because they don't. Your job is to teach them, not to expect their professors to have done the job and get frustrated with them when they can't jump through your hoops.

csammis
Aug 26, 2003

Mental Institution

Hadlock posted:

This is kind of like hiring a welder, and then wanting to get paid to learn how to weld after they show up to work on their first day

Ah, a comparison to the trades! Occupations famous for…um…entry level candidates who are literally apprentices learning from master crafters on the job. Hm.

Blinkz0rz posted:

If you're hiring out of college (or an intern in college) assume they know nothing because they don't. Your job is to teach them, not to expect their professors to have done the job and get frustrated with them when they can't jump through your hoops.

:yeah:

a dingus
Mar 22, 2008

Rhetorical questions only
Fun Shoe
If you're a degreed computer toucher and you don't know what basic git (commit, push, checkout, pull) is then I'd really be worried whether your degree is worth the paper it's written on. Now I wouldn't expect people to be really confident in their git skills at that stage, but I can't believe a modern degree program would omit at least a basic review of this stuff.

I don't know what type of background education an apprentice welder gets but if he's got 4 years of welding theory under his/her belt then they should have a working understanding of different types of welders and things like that.

Maybe I am talking out of my rear end because I don't have a degree in comp science or similar, but my professors put a lot of work into making sure we were at least familiar with basic tooling for our industry. This was at a state school, nothing special.

Hadlock
Nov 9, 2004

Yeah I guess some people are bristling at the idea of a LAMP/CRUD developer being compared to a welder, so I'll use a mechanical engineer instead, if you're in school I'm not going to expect you to know my specific CAD software, but I expect you to at least know one piece of software, solidworks, fusion360, blender, SketchUp whatever from all your time in school. I consider understanding source control down there with "how to switch on your laptop", it's 22 year old software that people code golf, it's not bleeding edge tensor/ai framework stuff written in lisp

fourwood
Sep 9, 2001

Damn I'll bring them to their knees.

a dingus posted:

… my professors put a lot of work into making sure we were at least familiar with basic tooling for our industry. This was at a state school, nothing special.
Tbh I would think it’s actually the other way around. The more fancy and fart-huffing the school, the more they wouldn’t dare degrade themselves by teaching you tooling instead of more esoteric computing theory.

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


Students not being familiar with tools doesn't mean that schools aren't teaching them. These kids have an incredible ability to learn just enough to pass their current classes and forget it all afterwards.

Hadlock
Nov 9, 2004

Kids these days

Fellatio del Toro
Mar 21, 2009

finding it pretty hard to care either way about things that can be easily learned on the first day of any job tbh

fawning deference
Jul 4, 2018

In a quick subject change, I want to read Clean Code but I'm wondering if it is fairly beginner friendly. If it isn't, is there something like which is?

Edit: It seems like CC is Java-specific and I'm finding that most of the "you gotta read this" books on software architecture and good coding habits are specific to object-oriented languages. That's fine, but I'm going to be coding in JavaScript/React using functional components and am wondering if there is a great resource that is more relevant to that.

fawning deference fucked around with this message at 16:33 on Feb 23, 2022

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


Designing a computer science major is hard. You need to prepare the majority of students to be practitioners, but you also need to prepare the next generation of researchers and professors for graduate school. There's overlap in what those two groups need, but not as much as you might think. You're also constrained by the fact that classes last one semester and a degree only lasts four years. That means that there's a lot you have to cover in that time frame, and not much opportunity for doing larger projects at any point in education. As a result, academia has settled on a curriculum that's not quite right for anyone and definitely wrong for some careers, and I don't think that that's going to change any time soon for a variety of reasons.

Much like we have separate degrees for physics and various forms of engineering, we're starting to see a split into computer science and software engineering degrees, but there's no standard software engineering curriculum, and when it does emerge it's going to be an engineering degree rather than vocational training. The training of future researchers aside, schools will always focus on underlying principles rather than whatever the current tooling is because those principles change slowly if at all and there's no other good opportunity for learning them. That's not to say that school shouldn't be teaching some level of tooling, but honestly in a lot of cases they already are and students don't retain that material. Part of that is because they're so laser focused on the next exam, and part of it is because the exposure to those tools is very limited compared to how much we focus on them in industry.

The tl;dr is that you as an employer are not the only people who degree programs need to keep happy, and that there are a lot of aspects of building software that really can't be taught in an academic setting. Let them focus on what they're good at, and be prepared to spend some time training interns and junior employees on the things they need to know to do the job.

At some point I'll do a writeup of the more-or-less standard computer science curriculum, but I don't have the time right now and I don't think it's completely germane to this post anyway.

CPColin
Sep 9, 2003

Big ol' smile.

ultrafilter posted:

Students not being familiar with tools doesn't mean that schools aren't teaching them. These kids have an incredible ability to learn just enough to pass their current classes and forget it all afterwards.

This is similar to the reasoning I keep having to use when my work tries to cross-train me for something I'm not going to use immediately

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

fawning deference posted:

In a quick subject change, I want to read Clean Code but I'm wondering if it is fairly beginner friendly. If it isn't, is there something like which is?

Edit: It seems like CC is Java-specific and I'm finding that most of the "you gotta read this" books on software architecture and good coding habits are specific to object-oriented languages. That's fine, but I'm going to be coding in JavaScript/React using functional components and am wondering if there is a great resource that is more relevant to that.

Clean code is pretty bad. In that it has lots of advice, some good some horrific. But you'd need to already be expert enough to not need the advice to disambiguate between the two.

spiritual bypass
Feb 19, 2008

Grimey Drawer

fawning deference posted:

In a quick subject change, I want to read Clean Code but I'm wondering if it is fairly beginner friendly. If it isn't, is there something like which is?

Edit: It seems like CC is Java-specific and I'm finding that most of the "you gotta read this" books on software architecture and good coding habits are specific to object-oriented languages. That's fine, but I'm going to be coding in JavaScript/React using functional components and am wondering if there is a great resource that is more relevant to that.

Clean Code was really important for my development as a programmer, but I'm not a fan of the author. He has a habit of creating impenetrable jargon, then writing a book to explain what it means. Instead, you could summarize Clean Code like this:
  1. Program to interfaces (Java supports them explicitly, but the concept remains in other languages)
  2. Separate input/output from calculations as much as possible, which makes it easy to
  3. Write unit tests

If those aren't immediately clear to you, Clean Code does provide examples, but they aren't great examples. Martin has very little credibility as a real world programmer since he provides no samples of production code to back it up. He can only explain his programming work in vague terms where the punchline is always how his planning lead to grand success.

Even if you aren't doing Java or OOP, consider that an object is a set of functions with potentially associated state. In other words, they're closures with syntactic sugar for making whole sets of identical closures with their own data inside. Having a clear idea of I/O separation, state mutation, and a function's role is useful anywhere.

downout
Jul 6, 2009

Hadlock posted:

This is kind of like hiring a welder, and then wanting to get paid to learn how to weld after they show up to work on their first day

Someone is going to wander in here and shout that university is about education, not job skills, but it's really alarming the number of students who have zero exposure to basic tooling, and the lack of desire to learn about the tools of their trade

Your basic tooling isn't my basic tooling with the exception of git.

Sign
Jul 18, 2003

leper khan posted:

Clean code is pretty bad. In that it has lots of advice, some good some horrific. But you'd need to already be expert enough to not need the advice to disambiguate between the two.

The 20th anniversary edition fixed that pretty well. Nope I was thinking Pragmatic Programmer

Sign fucked around with this message at 18:35 on Feb 23, 2022

garashir fanfic
Oct 22, 2020

Title Text

Hadlock posted:

Spent more than half a day today getting our intern up to speed

If you're a student, please do the following before your first day:

Install Linux in a VM
Install git on it

Work through these URLs at your own pace

https://docs.github.com/en/get-started/getting-started-with-git/setting-your-username-in-git

https://docs.github.com/en/account-...t-email-address

https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account

Make sure you can open a new foobar.json file with vim, edit it, save it, exit vim, cat it, mv it to /tmp and chmod +x it, then rm it. Create and figure out how to delete /tmp/widget/ folder

Clone from a private repo using your newfound non-windows skills

I guess you can run bash and ssh from windows now if you're clever enough, but might as well rip off the band-aid

MIT actually has a lecture series available for free online that covers a lot of this + a bunch of other stuff:

https://missing.csail.mit.edu/

(Also includes notes and a few exercises for each lecture)

I've found it fascinating and even a little useful despite not yet working with systems where I really need to be able to use these tools. Finished lecture 4 on Monday so I knew how to use sed on the system dictionary to find guesses for today's wordle since I couldn't think of anything that matched my found letters :j:

Volguus
Mar 3, 2009

leper khan posted:

Clean code is pretty bad. In that it has lots of advice, some good some horrific. But you'd need to already be expert enough to not need the advice to disambiguate between the two.

I've read it many years ago and I don't remember any "horrific" advice. Sometimes ... questionable and in the "eh ... maybe" category but nothing completely insane. Do you happen to remember some examples of such horrific advice?

fawning deference
Jul 4, 2018

So what would you all suggest instead of Clean Code?

crimedog
Apr 1, 2008

Yo, dog.
You dead, dog.
cleaner code

fawning deference
Jul 4, 2018

Funny stuff.

Anyway, I am struggling because comp-sci and software engineering books or courses focus on Java or C# or Python and I'm going to be using JavaScript/React almost exclusively. I still really want to learn and I know lots of it is transferrable, but it's difficult to know where to dive in.

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

Volguus posted:

I've read it many years ago and I don't remember any "horrific" advice. Sometimes ... questionable and in the "eh ... maybe" category but nothing completely insane. Do you happen to remember some examples of such horrific advice?

Studies have consistently shown that longer functions are easier to read and understand, and have fewer bugs over time, than short methods.

I haven't read it in probably a decade either. But here's a writeup https://qntm.org/clean

chglcu
May 17, 2007

I'm so bored with the USA.

leper khan posted:

Studies have consistently shown that longer functions are easier to read and understand, and have fewer bugs over time, than short methods.

I haven't read it in probably a decade either. But here's a writeup https://qntm.org/clean

I’ve heard this before, but it doesn’t really track with my personal experience. I dislike long functions mostly due to the overhead of how much context you have to keep track of. Clean Code does go way too far in the direction of short ones though. I seem to remember his recommendation being 1-3 lines each or something insane like that, though I’d have to check the book to be sure.

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

chglcu posted:

I’ve heard this before, but it doesn’t really track with my personal experience. I dislike long functions mostly due to the overhead of how much context you have to keep track of. Clean Code does go way too far in the direction of short ones though. I seem to remember his recommendation being 1-3 lines each or something insane like that, though I’d have to check the book to be sure.

Yeah he disallows functions longer than 4 lines, and will write functions that are one line long.

Volguus
Mar 3, 2009

leper khan posted:

Studies have consistently shown that longer functions are easier to read and understand, and have fewer bugs over time, than short methods.

I haven't read it in probably a decade either. But here's a writeup https://qntm.org/clean

Haha, I remember now, yes the code presented in many cases was quite bad. But, the advice given was usually good and reasonable. Had good ideas and even now (for example) when I write a method and I have 2 bools as parameters, I stop and ask myself: Is it fine? Should I have an enum? Should I do something else (a struct)?Maybe I should refactor? Without reading that book I don't know if I would have even asked myself those questions. Sometimes the answer is: 2 bools are fine, or most likely, gently caress it I'll fix it later (never). And sometimes not, refactoring of some sort feels necessary.

No book, no set of ideas should be taken as gospel and either accept everything or throw it all away. I agree, however, that maybe a junior developer does need some set of hard rules to follow at first until they get some experience and then can make up their mind on what to follow and when. Everything is and must be treated as being flexible and subject to change depending on the situation at hand. That's probably the only rule to treat as the inflexible one, to follow always.

edit: speaking of gospels, not even the Christians treat the actual gospel as ... gospel, but pick and choose what they like. So, don't fret, just write better code today than you did yesterday and you're good to go (better by your current standards at least).

Volguus fucked around with this message at 22:01 on Feb 23, 2022

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
Which comes back to the original point:

leper khan posted:

Clean code is pretty bad. In that it has lots of advice, some good some horrific. But you'd need to already be expert enough to not need the advice to disambiguate between the two.

If you're recommending texts for juniors to read, try picking something that doesn't have so much awful garbage that sounds like good advice mixed in with the actual good advice that other people will also tell you to do.

fawning deference
Jul 4, 2018

I wonder what these good recommendations are!

lifg
Dec 4, 2000
<this tag left blank>
Muldoon
The best way read Clean Code is at a company book club, where you can sit down once a week, eat company bought pizza, and all agree that this week’s chapter was insane.

Code Complete is better. Much longer.

Oolb
Nov 18, 2019

leper khan posted:

Relo is generally available for internships, to the point some of them put you in corporate housing. Most larger orgs will relo entry level.

Remote internships and entry level roles will always be a thing at remote companies. They'll phase out elsewhere as people return to office.

How big are we talking? Is this off-limits to someone who goes to a no-name state school in a flyover state?

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

Oolb posted:

How big are we talking? Is this off-limits to someone who goes to a no-name state school in a flyover state?

If you pass the interview and they want you for the role, they will get you there.

Doesn't really have anything to do with the school you went to.

Oolb
Nov 18, 2019
But getting selected for an interview is about having a big-name school on your resume and being the right geographical location, no?

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

Oolb posted:

But getting selected for an interview is about having a big-name school on your resume and being the right geographical location, no?

It doesn't hurt, but it's not required.

Adbot
ADBOT LOVES YOU

Lockback
Sep 3, 2006

All days are nights to see till I see thee; and nights bright days when dreams do show me thee.

Oolb posted:

But getting selected for an interview is about having a big-name school on your resume and being the right geographical location, no?

Not really. A big name school will help you in some places, but not really that many. If you want to go straight into FAANG a good school can help a bit, but then internships and whatnot are probably much more important (though a good school can help with that too). Outside of FAANG honestly the kind of doors that are opened just by going to a good school aren't necessarily the best ones for a first job anyway for a developer.

Once you get experience, schooling matters even less. And even for a new grad, good projects and portfolios are more important than the name of the school.

The last, like, 5 people I hired didn't even have software degrees, but instead had other backgrounds and took bootcamps to get up to speed.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply