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
kayakyakr
Feb 16, 2004

Kayak is true

rt4 posted:

Similar situation here in mid-sized southern US city. Go full remote, you probably won't regret it.

I think that the market trend is toward more remote. Digital Ocean's been doing some surveys and has been showing movement in that direction. Virtual offices are the best.

Adbot
ADBOT LOVES YOU

Nomnom Cookie
Aug 30, 2009



kayakyakr posted:

I think that the market trend is toward more remote. Digital Ocean's been doing some surveys and has been showing movement in that direction. Virtual offices are the best.

More, but it's not a large part of the market. Not full remote, anyway. Although I can easily believe it's been growing quickly, when smaller companies are faced with a) paying competitively to FAANG or b) sucking it up and letting ICs perform their duties away from the all-seeing eye.

Pollyanna
Mar 5, 2005

Milk's on them.


Remote is hard to pull off on both sides, IME. It’s also still relatively rare and I can just see a company deciding to unremote and loving over a bunch of people.

The Fool
Oct 16, 2003


Remote is hard for companies that are used to a traditional model of collaboration with people all in the same room/building.

Remote works best with companies that have remote work as part of their culture from the very beginning.

The_E
Jul 2, 2018

School of How posted:

Code is not something that inherently has to be "maintained". It's not like a sports car that will have parts wear out and need to be replaced.

Wow, so you've never worked in an environment where business needs changed?

The codebase I and my team is responsible for is about 300k LOC in Python, Kotlin and Java. It has to be maintained constantly, because working in a startup means that requirements will frequently change. Writing maintainable code, i.e. code with fairly strict requirements for cyclomatic complexity and separation-of-concerns is a must-have; Letting things slip means that far too much time gets lost when people have to work outside of the parts of the codebase they are directly responsible for.

quote:

My favorite example is Super Mario Bros. for the NES. That game was first released in 1985, and the code hasn't changed one bit since then. And yet the game still works perfectly fine today as it did 50 years ago. It doesn't really matter if the code for SMB is "maintainable" or not because it doesn't need maintenance.

You are really bad at this whole "making comparisons that make sense" thing, aren't you

kitten smoothie
Dec 29, 2001

The Fool posted:

Remote is hard for companies that are used to a traditional model of collaboration with people all in the same room/building.

Remote works best with companies that have remote work as part of their culture from the very beginning.

Or if not explicitly remote, a company big enough that they have multiple offices geographically distributed and even folks in an office end up having to interact remotely. Sometimes that little light bulb goes off over people's heads and they realize they've already got the mental model to support remote workers.

I worked remotely for a giant stodgy bank, where you wouldn't expect Remote Culture. But the office-based people in the team were already spread across 3 US timezones in different company locations and had been for years, so to any given team member, at least 2/3 of their teammates were "remote" anyway.

kayakyakr
Feb 16, 2004

Kayak is true

The Fool posted:

Remote is hard for companies that are used to a traditional model of collaboration with people all in the same room/building.

Remote works best with companies that have remote work as part of their culture from the very beginning.

Yup. It's hard to transition a company from a single office to fully remote, but if you're already distributed, adding remote employees is not that difficult.

School of How
Jul 6, 2013

quite frankly I don't believe this talk about the market

Sab669 posted:

Today I learned a code's maintainability is a binary thing: Either it can be maintained, or it cannot.

There is exactly zero difference between well-commented code with thoughtful variable names and split up into reasonably-sized functions and CS99 stuff where you use single characters for variable names and singular functions do way too many things.

https://dotnetfiddle.net/sKKOCf - This function works, please explain to me what it does (I wish I could say I renamed some of the variables and deleted comments, but I didn't :suicide:)

You;'re comparing two extremes. This discussion began when someone claimed they interviewed 600 people and rejected them all because their code wasn't maintainable. I highly doubt every single one of those 600 applicants write code with one letter variable names, monolithic functions and no comments.

As far as that snippet of code you posted, I need more context to know what it's doing. It looks like it's iterating through some kind of data table. I need to know if it's from a database program? A spreadsheet program?

In general to figure out how working code works, I suggest putting print statements before and after a function call to see what data is going into the function, and then comes out. From there you can sort of backwards engineer what's going on inside the function.

All I'm saying is that my definition of working code is code that works. Other people obviously have much more narrow definition of the term. If the code works, I have the skills to always figure out what's going on, but I understand not everybody has those skills.

The Fool
Oct 16, 2003


School of How posted:

In general to figure out how working code works, I suggest putting print statements before and after a function call to see what data is going into the function, and then comes out. From there you can sort of backwards engineer what's going on inside the function.

loving lol

e: in case it isn't clear, you are a junior developer with delusions of grandeur

The Fool fucked around with this message at 19:22 on Aug 15, 2019

prisoner of waffles
May 8, 2007

Ah! well a-day! what evil looks
Had I from old and young!
Instead of the cross, the fishmech
About my neck was hung.

The_E posted:

far too much time gets lost when people have to work outside of the parts of the codebase they are directly responsible for.

That's an interestingly specific comment about what goes wrong with low quality code but it doesn't ring false.

Guinness
Sep 15, 2004

School of How posted:

In general to figure out how working code works, I suggest putting print statements before and after a function call to see what data is going into the function, and then comes out. From there you can sort of backwards engineer what's going on inside the function.

:perfect:

The junior-est of techniques with limited use cases in complex real world systems

kitten smoothie
Dec 29, 2001

School of How posted:

In general to figure out how working code works, I suggest putting print statements before and after a function call to see what data is going into the function, and then comes out. From there you can sort of backwards engineer what's going on inside the function.

I couldn't put my finger on exactly what point in this saga that Poe's Law came into play, but I now know we've definitely gone there

Sab669
Sep 24, 2009

In case anyone is still confused as to whether he's just a troll or not...

Acer Pilot
Feb 17, 2007
put the 'the' in therapist

:dukedog:

School of How posted:


In general to figure out how working code works, I suggest putting print statements before and after a function call to see what data is going into the function, and then comes out. From there you can sort of backwards engineer what's going on inside the function.

This says a lot.

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

Sab669 posted:

In case anyone is still confused as to whether he's just a troll or not...

It was believable up to that, yeah.

sunaurus
Feb 13, 2012

Oh great, another bookah.

School of How posted:

I have the skills to always figure out what's going on, but I understand not everybody has those skills.

:psyduck:

sunaurus
Feb 13, 2012

Oh great, another bookah.
Imagine if there was an actual real person posting in this thread who believed he was an awesome developer because he knows what `print` does

Pollyanna
Mar 5, 2005

Milk's on them.


I think I stopped taking it seriously after claiming super mario bros is 50 years old

rsjr
Nov 2, 2002

yay for protoss being so simple that retards can win with it

Pollyanna posted:

I think I stopped taking it seriously after claiming super mario bros is 50 years old

Yes, out of all of his claims being off by 14 (the initial release) here was what really made me go hmmm... too.

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost
I must refrain from printing out How comments and leaving it in the break room at work

CPColin
Sep 9, 2003

Big ol' smile.
This thread inspired this tweet I made yesterday:
https://twitter.com/CPColin/status/1161790157122465792
See if you can guess who I was talking about!

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost
I just realized that How is basically the Tommy Wiseau of software. We just need to have someone here work with him to bring his wisdom to our profession.

Achmed Jones
Oct 16, 2004



CPColin posted:

See if you can guess who I was talking about!

Hey leave me alone, I never did anything to you :mad:

prisoner of waffles
May 8, 2007

Ah! well a-day! what evil looks
Had I from old and young!
Instead of the cross, the fishmech
About my neck was hung.

Achmed Jones posted:

Hey leave me alone, I never did anything to you :mad:

No, _I_ am How!!tacus

putin is a cunt
Apr 5, 2007

BOY DO I SURE ENJOY TRASH. THERE'S NOTHING MORE I LOVE THAN TO SIT DOWN IN FRONT OF THE BIG SCREEN AND EAT A BIIIIG STEAMY BOWL OF SHIT. WARNER BROS CAN COME OVER TO MY HOUSE AND ASSFUCK MY MOM WHILE I WATCH AND I WOULD CERTIFY IT FRESH, NO QUESTION

School of How posted:


In general to figure out how working code works, I suggest putting print statements before and after a function call to see what data is going into the function, and then comes out. From there you can sort of backwards engineer what's going on inside the function.

Haha oh wow.

Gildiss
Aug 24, 2010

Grimey Drawer

Let's give it a spin.

code:
fmt.Println(advice)
"Sensible Advice"

a := HOW(advice)

fmt.Println(a)
"Faaaaaaaaart"
Hmm... I think it's full of poo poo!

Xik
Mar 10, 2011

Dinosaur Gum
Yeah but we're still no closer to understanding HOW()

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings

rsjr posted:

Is this something C# specific? It seems like a generic why do we code against an interface over an implementation rather than the benefits of using LINQ, which is only an added bonus since LINQ I assume is built on top of that particular interface. Your answer isn’t very satisfying in that context, to be honest.

See https://stackoverflow.com/questions/383947/what-does-it-mean-to-program-to-an-interface etc.

Yes, it's beyond the 'use Interfaces to hide implementation details' (though that's another endless void of manhours trying to inform team members about).
In this case, a lot of the confusion came from the fact that we have a *lot* of data to process. Historically the mix of implementations have always followed the cycle:
1. Write the code to just load an entire dataset into a List<TIn>. Foreach it into a List<TOut>. Iterate that list.
2. Eventually, a client with a large dataset complains that the application crashes with an OutOfMemory on their 16GB system.
3. Tell them to upgrade to 32GB.
4. Eventually, it crashes on a 32GB system.
5. Try to start jamming all sorts of batching logic in around pieces of the system.
6. Two dogs kissing in an alley.

You can get away from a lot of this by utilizing IEnumerable pipelining, which also gets you LINQ support throughout the process. This is all lazily evaluated and that's where brains break, in my experience. Including in the discussion with this senior C# dev - who couldn't quite figure out how it wasn't all in memory - and 'It's not in memory at the same time' wasn't making sense.

Cancelbot
Nov 22, 2006

Canceling spam since 1928

return0 posted:

In terms of preparation, I agree it's worth practicing whiteboarding & writing code in front of others, and remembering to talk the interviewer through your thought process in general. To be honest these things are useful no matter where you interview for a developer role.

Yeah that's where my focus has been. I'm going for Senior TAM which focuses hard on the leadership principles. At the end of the second screen the enterprise support manager told me to get 5-6 examples for every principle as it's all about telling stories as using the same one across multiple interviews raises red flags.

There is a whiteboard exercise but it's architectural and apparently is really simple if you know AWS. But it's explaining and defending that design that matters.

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

Xik posted:

Yeah but we're still no closer to understanding HOW()

But if it has no use that means we can remove it from our dependencies. I heard almost nobody uses it anyway as it is unusable in most real world scenario's.

vonnegutt
Aug 7, 2006
Hobocamp.

Mega Comrade posted:

We actually have a day dedicated once a month to upskilling and its great, I always plan it way in advance and look forward to it. I just cannot get the same enthusiasm up for my own time and I have no idea how to change that, its not like I don't have the time either, I don't have kids and my girlfriend often has to work weekends. I do sometimes manage to start something but I almost never continue with it, my github is a graveyard of unfinished projects and ideas.

I've realized that I become functionally braindead for coding at about 4pm every day (when I start around 8am). So I've accepted that spending time at the end of the day trying to learn new stuff is useless. My solution is to front load my day with personal stuff - spend 30-40 minutes first thing in the morning on coding something personal (or more recently, reading) before getting into work stuff. I enjoy it, but mostly I've been digging deeper into work related stuff, nothing like building a project in a different language.

People who feel like you have successful self-learning methods: what are they?

Pollyanna
Mar 5, 2005

Milk's on them.


It’s really not that weird that doing the same thing for 8 hours straight would tire you out and make you sick of it. I don’t understand how this is strange or a problem.

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



Pollyanna posted:

It’s really not that weird that doing the same thing for 8 hours straight would tire you out and make you sick of it. I don’t understand how this is strange or a problem.

Someone's not a 10x rockstar ninja code warrior guru :smuggo:

CPColin
Sep 9, 2003

Big ol' smile.

Achmed Jones posted:

Hey leave me alone, I never did anything to you :mad:

Sorry sorry sorry! Can't make an omelette without breaking a few eggs!

Lord Of Texas
Dec 26, 2006

vonnegutt posted:

People who feel like you have successful self-learning methods: what are they?

If you're struggling to focus while solo learning, learn WITH someone you like about a topic you're both interested in. Then it becomes more fun, and more productive since you can bounce concepts off each other.

kayakyakr
Feb 16, 2004

Kayak is true

vonnegutt posted:

I've realized that I become functionally braindead for coding at about 4pm every day (when I start around 8am). So I've accepted that spending time at the end of the day trying to learn new stuff is useless. My solution is to front load my day with personal stuff - spend 30-40 minutes first thing in the morning on coding something personal (or more recently, reading) before getting into work stuff. I enjoy it, but mostly I've been digging deeper into work related stuff, nothing like building a project in a different language.

This sounds pretty normal. Personally, I get productivity in bursts. I start my day at 9 and get my first big burst at 11AM. I'm still working the rest of the time, it's just that everything seems to get easy about 11. Then another big burst happens right around 4:00. When that one wears off, it's time to quit for the day.

The old night owl me would also get one between 10 and 11PM every night, but that time is better spent either sleeping or spending time with my partner.


As far as self-learning strategies, I don't have much for you, sorry.

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

vonnegutt posted:

I've realized that I become functionally braindead for coding at about 4pm every day (when I start around 8am). So I've accepted that spending time at the end of the day trying to learn new stuff is useless. My solution is to front load my day with personal stuff - spend 30-40 minutes first thing in the morning on coding something personal (or more recently, reading) before getting into work stuff. I enjoy it, but mostly I've been digging deeper into work related stuff, nothing like building a project in a different language.

People who feel like you have successful self-learning methods: what are they?

Lord Of Texas posted:

If you're struggling to focus while solo learning, learn WITH someone you like about a topic you're both interested in. Then it becomes more fun, and more productive since you can bounce concepts off each other.

I recently started a technical book reading group in my org. It’s been very useful both in motivating me to get through my reading list as well as facilitating discussion among peers and juniors.

Find two hours over the weekend to dig into a project with something unrelated to your work on weekends. You can find two hours for projects if you try. You probably watch more tv or play more games than that; even accounting for the project time. Try to find a project that feels fun and not stressful.

I get to work early and read some other book than the one in the book club. Once a month or so, I’ll try to find someone in the office I can talk with about whatever that topic is.

Pollyanna
Mar 5, 2005

Milk's on them.


What exactly is “one year five times”, or “one year fifteen times”, or whatever? How do you know you’re in that state? How do you get out of it and prevent it? How much do the opportunities you get affect it?

The Fool
Oct 16, 2003


Pollyanna posted:

What exactly is “one year five times”, or “one year fifteen times”, or whatever?

It's a way of saying that someone's career has been stagnant, there's been no advancement, no learning, no development. It's the guy that became a product expert 5 years ago and hasn't done anything different since then. It's the dev that three years into a position is still working the same things they were in the first month.

quote:

How do you know you’re in that state?

Are you getting bored at work? Are you lacking challenge? Have you been at the same company for a couple years but there's no opportunity to advance internally?

quote:

How do you get out of it and prevent it?

You need to be proactive about pursuing new opportunities. Sometimes this is hard or impractical to do outside of work, so it is worthwhile to find an employer that values professional development.

quote:

How much do the opportunities you get affect it?

Significantly in my experience. I've seen people that have no real ambition move really fare in their careers just because they're in the right place at the right time and I've seen others that work hard every day struggle to advance because they just don't have good advance opportunities around them.

Personally, I know my career could be much further along if I lived in a different region, but that is a trade-off I've been happy with.

The Fool fucked around with this message at 18:37 on Aug 16, 2019

Adbot
ADBOT LOVES YOU

lifg
Dec 4, 2000
<this tag left blank>
Muldoon
Potential pseudoscience warning: I once read that it takes someone about two years to master the work for a role. After that they can execute well, but they're not learning anything new. To me, that's the danger point.

Anecdotally, I know a few old programmers who had an old fashion loyalty to their company, did the same work for 10-20 years, then found themselves laid off and out-of-date skills. Like they were working on PDP-11, and employers now wanted C. So they went into QA. Again, 10 years of that, laid off, and now companies wanted new skills. Work kept being harder to find.

Back in the day very few people knew what kind of industry programming would become, how fast moving it would be.

I'm trying to avoid it by having an upwards-ish trajectory to my career (or at least interesting lateral movements) and reading a couple books a year.

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