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
Jaded Burnout
Jul 10, 2004


TooMuchAbstraction posted:

Yeah, I certainly didn't mean to imply that this was anything particularly novel; I was just providing a source. I dearly hope that most large tech companies have something similar, wherever they learned it from.

We use some form of it in the government too, though we since changed to calling them "incident reviews" because I guess no real reason to evoke someone's death.

Adbot
ADBOT LOVES YOU

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

minato posted:

- There's no consequences for cowboy behavior. If the real root cause was "I was lazy & careless, #yolo", then no amount of process/tooling changes will change that attitude, only mitigate it.
There is a certain presumption that people are interested in doing the right thing, sure. But ideally the tooling shouldn't let you do the wrong thing, or at least should make it harder than doing the right thing. You want laziness to work in your favor, and sometimes that means adding enough process that the lazy route is the safe route.

quote:

- There was rarely incentive to act on the follow-ups. Everyone goes to the post-mortem meeting, they identify the root causes, they make tickets to fix the causes, and get the warm fuzzy feeling that progress is made... and then those tickets are de-prioritized and never get acted on, because "that outage was a one in a million chance", or they're understaffed, or it's too much effort to Fix It The Right Way.

Yeah, this is definitely a problem. Sometimes the main output of a post-mortem is "look, this happened before, we told you it was important" and hope that the higher-ups adjust resources and priorities accordingly.

LLSix
Jan 20, 2010

The real power behind countless overlords

minato posted:

- There was rarely incentive to act on the follow-ups. Everyone goes to the post-mortem meeting, they identify the root causes, they make tickets to fix the causes, and get the warm fuzzy feeling that progress is made... and then those tickets are de-prioritized and never get acted on, because "that outage was a one in a million chance", or they're understaffed, or it's too much effort to Fix It The Right Way.

The places that I've worked at that did post-mortems also usually had the action items as high priority tasks. At worst they were treated as must-address items in the planning for the next sprint.

return0
Apr 11, 2007

JawnV6 posted:

Once again, goog and amazon didn't invent the blameless postmortem whole cloth.

TooMuchAbstraction posted:

Yeah, I certainly didn't mean to imply that this was anything particularly novel; I was just providing a source. I dearly hope that most large tech companies have something similar, wherever they learned it from.

Sure, I didn't mean to imply you did; was supplying some more context that this process (not that it was necessarily required) that this is something that technical organizations do on the regular.

spiritual bypass
Feb 19, 2008

Grimey Drawer
If this company doesn't use version control properly and wants to poo poo on you for broken links in an internal site, those are two good indicators (three if we count not using git) that it's time to leave anyway

Doh004
Apr 22, 2007

Mmmmm Donuts...

rt4 posted:

If this company doesn't use version control properly and wants to poo poo on you for broken links in an internal site, those are two good indicators (three if we count not using git) that it's time to leave anyway

This is correct.

Jaded Burnout
Jul 10, 2004


I got shamed into switching to git from SVN 12 years ago.

minato
Jun 7, 2004

cutty cain't hang, say 7-up.
Taco Defender

TooMuchAbstraction posted:

There is a certain presumption that people are interested in doing the right thing, sure. But ideally the tooling shouldn't let you do the wrong thing, or at least should make it harder than doing the right thing. You want laziness to work in your favor, and sometimes that means adding enough process that the lazy route is the safe route.
Totally agree. But a defensive process is like security; there's often a tradeoff between risk and usability. If a process is made safer by forcing people to jump through hoops, some people will find a way around those hoops. Like you say, improvements to the process should make it easier to do it the Right Way, and not be an impediment.

gandlethorpe
Aug 16, 2008

:gowron::m10:
Not sure if this is the right thread to ask, since I still don't feel like a real programmer, but I did stumble into a senior programmer position at my tiny company a few months ago. I spent 3 years with a low level title, teaching myself a lot about databases (both admin and analysis) and becoming the de facto company expert on the expensive DBMS they licensed from Oracle. Having put out quite a few fires in my time and establishing myself as niche employee, they were keen to have me stay when I announced I had gotten an offer at a larger company. I was satisfied enough with their counter to stay, and wasn't really ready to change too much in my life anyway after recently losing my dad. In the grand scheme, though, I'm pretty unsatisfied career-wise and kind of over working full-time. I don't feel secure with my programming skills/knowledge and want to go back to school. Also, the industry I've fallen into (pharm research) is kind of stuffy and dominated by people much older than me, and I don't know if I want to work in it much longer. Finally, I want more time to pursue hobbies (art, music) and other activities that may or may not relate to my pipe dream of creating an indie game on my own.

Prior to getting the offer, I was already desperate to quit and go back to school for a CS degree. My first degree is in environmental science, and my alma mater makes it very easy to return for another. I just have to take a handful of community college pre-reqs before transferring. In fall, I only managed to get one class (at night), so I kept working normally. Now the next semester's coming up, I'd like to take more classes, but some are only offered during the day. Ideally, I'd start working part-time/hourly while using the newfound time for classes/hobbies. I'm pretty confident the company will do whatever they can to keep my services, since I'm kind of an "oh poo poo" button for them and like solving problems. Also, I'm not so concerned about money, since I've saved a decent amount and will be moving back in with my mom for a while.

Anyway, I'm not really sure where I'm going with this. I assume if things work out with my job, I'll still have a lot of free time outside of class and will want to self-teach, but it always overwhelms me where to start. I always describe my programming knowledge as fragmented. I know enough where I don't need to start at the bottom, but probably skipped a lot of pretty fundamental things for serious programmers. I mean, I've never used Git and rarely use fancy text editors, but I've built some pretty sophisticated macros. This is a large part of why I want the formal foundation of a degree and to feel less like a sham.

So I guess to ask an actual question, what should I be doing to get a head start teaching myself how to be a real programmer, especially if the direction I'm looking to go is in software development? Alternatively, you can roast me about my life choices/naivety regarding my career.

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison
a cs degree isn't going to teach you how to use git or use a fancy text editor, but it'll probably open doors at a lot of places and teach you some fundamentals of algorithms and lower-level stuff like compilers that you might not already know.

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

On the other hand, if you have the title "Developer", what is a degree going to add? So many devs are self-taught.

Bruegels Fuckbooks
Sep 14, 2004

Now, listen - I know the two of you are very different from each other in a lot of ways, but you have to understand that as far as Grandpa's concerned, you're both pieces of shit! Yeah. I can prove it mathematically.

gandlethorpe posted:

Not sure if this is the right thread to ask, since I still don't feel like a real programmer, but I did stumble into a senior programmer position at my tiny company a few months ago. I spent 3 years with a low level title, teaching myself a lot about databases (both admin and analysis) and becoming the de facto company expert on the expensive DBMS they licensed from Oracle. Having put out quite a few fires in my time and establishing myself as niche employee, they were keen to have me stay when I announced I had gotten an offer at a larger company. I was satisfied enough with their counter to stay, and wasn't really ready to change too much in my life anyway after recently losing my dad. In the grand scheme, though, I'm pretty unsatisfied career-wise and kind of over working full-time. I don't feel secure with my programming skills/knowledge and want to go back to school. Also, the industry I've fallen into (pharm research) is kind of stuffy and dominated by people much older than me, and I don't know if I want to work in it much longer. Finally, I want more time to pursue hobbies (art, music) and other activities that may or may not relate to my pipe dream of creating an indie game on my own.

Prior to getting the offer, I was already desperate to quit and go back to school for a CS degree. My first degree is in environmental science, and my alma mater makes it very easy to return for another. I just have to take a handful of community college pre-reqs before transferring. In fall, I only managed to get one class (at night), so I kept working normally. Now the next semester's coming up, I'd like to take more classes, but some are only offered during the day. Ideally, I'd start working part-time/hourly while using the newfound time for classes/hobbies. I'm pretty confident the company will do whatever they can to keep my services, since I'm kind of an "oh poo poo" button for them and like solving problems. Also, I'm not so concerned about money, since I've saved a decent amount and will be moving back in with my mom for a while.

Anyway, I'm not really sure where I'm going with this. I assume if things work out with my job, I'll still have a lot of free time outside of class and will want to self-teach, but it always overwhelms me where to start. I always describe my programming knowledge as fragmented. I know enough where I don't need to start at the bottom, but probably skipped a lot of pretty fundamental things for serious programmers. I mean, I've never used Git and rarely use fancy text editors, but I've built some pretty sophisticated macros. This is a large part of why I want the formal foundation of a degree and to feel less like a sham.

So I guess to ask an actual question, what should I be doing to get a head start teaching myself how to be a real programmer, especially if the direction I'm looking to go is in software development? Alternatively, you can roast me about my life choices/naivety regarding my career.

real world experience is the quickest way to grow - out of getting a masters degree in cs, contributing to open source on my own, getting a bitch-work job doing software QA, and being a software engineer at a company, I'd say the degree was least useful, and actually working as a software engineer at a company was most valuable. Hell I actually spend a pretty significant amount of time at work just looking at what other people are checking in and trying to figure out if I understand what they're talking about.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!

Jaded Burnout posted:

I got shamed into switching to git from SVN 12 years ago.

Wasn't git still pretty rough around the edges back then?

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

Rocko Bonaparte posted:

Wasn't git still pretty rough around the edges back then?

You mean to say the current form is the smooth form?

Jaded Burnout
Jul 10, 2004


Rocko Bonaparte posted:

Wasn't git still pretty rough around the edges back then?

It was certainly new, but I was so early on I'd only just started with source control full stop. As far as I remember it worked OK, but I don't think I had much of a frame of reference at the time.

Jaded Burnout
Jul 10, 2004


Keetron posted:

You mean to say the current form is the smooth form?

Git has gained a lot of quality of life improvements, though I know I don't use many of them because who relearns git ten years later?

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost
Some companies require degrees to be eligible for certain roles, but these companies are oftentimes horrible anyway and furthermore many of them don’t even care what the degree is in so you can game it with some BS degree (no pun intended).

Jose Valasquez
Apr 8, 2005

Keetron posted:

You mean to say the current form is the smooth form?

Git is smoothe like a shark now

LLSix
Jan 20, 2010

The real power behind countless overlords

gandlethorpe posted:

Not sure if this is the right thread to ask, since I still don't feel like a real programmer, but I did stumble into a senior programmer position at my tiny company a few months ago. I spent 3 years with a low level title, teaching myself a lot about databases (both admin and analysis) and becoming the de facto company expert on the expensive DBMS they licensed from Oracle. Having put out quite a few fires in my time and establishing myself as niche employee, they were keen to have me stay when I announced I had gotten an offer at a larger company. I was satisfied enough with their counter to stay, and wasn't really ready to change too much in my life anyway after recently losing my dad. In the grand scheme, though, I'm pretty unsatisfied career-wise and kind of over working full-time. I don't feel secure with my programming skills/knowledge and want to go back to school. Also, the industry I've fallen into (pharm research) is kind of stuffy and dominated by people much older than me, and I don't know if I want to work in it much longer. Finally, I want more time to pursue hobbies (art, music) and other activities that may or may not relate to my pipe dream of creating an indie game on my own.

Prior to getting the offer, I was already desperate to quit and go back to school for a CS degree. My first degree is in environmental science, and my alma mater makes it very easy to return for another. I just have to take a handful of community college pre-reqs before transferring. In fall, I only managed to get one class (at night), so I kept working normally. Now the next semester's coming up, I'd like to take more classes, but some are only offered during the day. Ideally, I'd start working part-time/hourly while using the newfound time for classes/hobbies. I'm pretty confident the company will do whatever they can to keep my services, since I'm kind of an "oh poo poo" button for them and like solving problems. Also, I'm not so concerned about money, since I've saved a decent amount and will be moving back in with my mom for a while.

Anyway, I'm not really sure where I'm going with this. I assume if things work out with my job, I'll still have a lot of free time outside of class and will want to self-teach, but it always overwhelms me where to start. I always describe my programming knowledge as fragmented. I know enough where I don't need to start at the bottom, but probably skipped a lot of pretty fundamental things for serious programmers. I mean, I've never used Git and rarely use fancy text editors, but I've built some pretty sophisticated macros. This is a large part of why I want the formal foundation of a degree and to feel less like a sham.

So I guess to ask an actual question, what should I be doing to get a head start teaching myself how to be a real programmer, especially if the direction I'm looking to go is in software development? Alternatively, you can roast me about my life choices/naivety regarding my career.

We're all imposters who are faking it here. I've yet to have a job that didn't mean relearning almost everything all over again. Even if I know the language going in, every company has always had its own libraries they've built up over the years and weird idiosyncrasies. Having a CS degree has maybe opened one door for me in my entire career and I can count on my fingers the number of times the things I learned at college but my self-taught colleagues don't know has been relevant.

As you've discovered a good DBA is hard to find, and I think they make about the same as a programmer so I don't think switching to programming is really in your interests.

On the other hand, it doesn't hurt to expand your skillset. If you want more practice being a developer, a good place to start is by automating any of your tasks at work. It'll save you time in the long run and its good practice. I like to use bash and python for stuff like that. You can learn most of what you need by googling around.

If you just want to get started coding https://www.learnpython.org/ has some good, quick tutorials. The same site covers several other languages. Udemy is also well thought of.

You'll probably get better replies in the newbie thread. A lot of us post in both but your more likely to find someone who has a list of tutorial links there. The second post in the op has a ton of links to options to learn.

Jaded Burnout
Jul 10, 2004


Jose Valasquez posted:

Git is smoothe like a shark now

And much like a shark, developers who use it can't stop moving companies or their career will die.

minato
Jun 7, 2004

cutty cain't hang, say 7-up.
Taco Defender

gandlethorpe posted:

start teaching myself how to be a real programmer
To acheive this, you'd first have to define what a "real programmer" is. And there's no clear answer.

The most valuable stuff I got from a pure academic CS degree was understanding algorithms. But I didn't become a Computer Scientist - like 99% of CS grads, I became a Software Engineer which is a different skillset. So I learned those skills either as a hobbyist or on the job, doing actual projects. To me, a programmer's job is to cobble stuff together to provide business value, ideally in a safe & maintainable way. Which means:
- understanding architectural principles of programs; how to organize your code, best practices like avoiding global variables, writing tests, etc.
- getting a good understanding of a couple of languages and their library/tooling ecosystems
- continual self-learning by keeping up with developments in those areas

spiritual bypass
Feb 19, 2008

Grimey Drawer

Keetron posted:

On the other hand, if you have the title "Developer", what is a degree going to add? So many devs are self-taught.

It's going to check a box if you want to work at a big company, maybe.
I don't really know because I've never worked at a big company...

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

rt4 posted:

It's going to check a box if you want to work at a big company, maybe.
I don't really know because I've never worked at a big company...

I once had someone that spoke low of self taught developers and then tried to lowball me on daily rate. Also government in this country has a hard requirement that anyone ato or above a certain paygrade needs to have a degree. Also government is underpaying developers as it is not a management role. As you can expect, the government has a hard time finding devs that are willing to work for them.

Kyth
Jun 7, 2011

Professional windmill tilter

minato posted:

- There's no consequences for cowboy behavior. If the real root cause was "I was lazy & careless, #yolo", then no amount of process/tooling changes will change that attitude, only mitigate it.

This is a feature, not a bug. It's literally by design. No personnel decisions should be made in the emotional environment of an outage, even post-fact.

If you're not firing cowboys it's because your management sucks, not because blameless postmortems don't have an AI to fire people for being cowboys.

Sab669
Sep 24, 2009

Keetron posted:

As you can expect, the government has a hard time finding devs that are willing to work for them.

From what I understand this is also largely due to our asinine stance on marijuana & drug testing :)

If you already have demonstrable skills in IT then I don't think going for a degree is especially worth the money, unless you have a way to get your education paid for.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!

Keetron posted:

You mean to say the current form is the smooth form?

I was trying to remember the early history on git and stuff online isn't helping jar this back into my head. Me and a coworker were even trying to recall back when that git had a different back end or was typically used with some peculiar technology that made it really temperamental--definitely more so than now. Now I can't find it so we're wondering if this is the Mandela Effect or something because me and this coworker had a similar notion. I'm bringing it up here now as a response in order to ruin everybody else's night too.

Doh004
Apr 22, 2007

Mmmmm Donuts...
I feel like a lot of my initial git problems were just because of how poorly I was trained on SVN originally.

Now I couldn't imagine living without it.

lifg
Dec 4, 2000
<this tag left blank>
Muldoon
My memories of early Git was the documentation. The early git tutorials were very... UNIXy. Instead of teaching useful commands, they started by teaching you what blobs were, and how the git data store worked. It was like learning to drive by starting with internal combustion.

I swear the only reason Hg got any traction over Git is because Joel Spolsky fell in love with it and created the most user friendly documentation possible at hginit.com.

Jaded Burnout
Jul 10, 2004


Welp, one of my clients just got a stick up his rear end about staging accounts and managed to blow up our working relationship. Wouldn't even take a call to discuss and just kept doubling down over Slack. So that's that job over.

Sab669
Sep 24, 2009

I left work early for an interview yesterday afternoon. Went well - recruiter emailed me in the evening saying she received an email from the company's HR saying they'll be in touch to move forward.

But more importantly, the CTO who scheduled my HR meeting today announced yesterday, after I left for my interview, that he would be out of the office today. Rescheduled my meeting for Wednesday next week. Wtf.

I was just going to keep my mouth shut but I think today I'll ask my boss exactly what's going on. I don't want this looming over my head all weekend.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!

lifg posted:

My memories of early Git was the documentation. The early git tutorials were very... UNIXy. Instead of teaching useful commands, they started by teaching you what blobs were, and how the git data store worked. It was like learning to drive by starting with internal combustion.

I swear the only reason Hg got any traction over Git is because Joel Spolsky fell in love with it and created the most user friendly documentation possible at hginit.com.

Yes this is familiar. We had a git evangelist in 2010 or so that was fixated on how everything was a hash and just beat on that. This guy had a network engineering background surrounded by electrical engineers, and there I was with a software background. If he had said it was like a graph data structure then I would have been right there. He would have lost everybody else, but as it stood, he lost everybody.

When I tried to look up stuff, I just got a bunch of smug about the git man pages. In retrospect, I have a theory that Linux kernel developers were already predisposed to think in terms similar to git's internals and it's more a coincidence it comes together in something that looks like a graph structure. So as early adopters, these people would very much think the man pages explain everything.

I still don't know how that network engineer got so fixated on hashes. Checksums?

Horse Clocks
Dec 14, 2004


Sab669 posted:

I left work early for an interview yesterday afternoon. Went well - recruiter emailed me in the evening saying she received an email from the company's HR saying they'll be in touch to move forward.

But more importantly, the CTO who scheduled my HR meeting today announced yesterday, after I left for my interview, that he would be out of the office today. Rescheduled my meeting for Wednesday next week. Wtf.

I was just going to keep my mouth shut but I think today I'll ask my boss exactly what's going on. I don't want this looming over my head all weekend.



Grab the bull by the horns, have the meeting with HR anyway, give them your notice, and explain why without pointing fingers.

“The issues I resolved during the incident were entirely preventable, if we had basic procedures in place and people actually followed them. I’ve been trying to bring them in myself, but given the incident, and the fact I haven’t been given the time to do so makes me feel nobody else cares, as such... IM OUTTA HERE BITCHES, as CTO is away, you can give him the news”

spiritual bypass
Feb 19, 2008

Grimey Drawer

Rocko Bonaparte posted:

I still don't know how that network engineer got so fixated on hashes. Checksums?

The hashes are cool because then you can do things like quickly verify the result of a merge is identical to what you may have already tested, for example

Sab669
Sep 24, 2009

Horse Clocks posted:

Grab the bull by the horns, have the meeting with HR anyway, give them your notice, and explain why without pointing fingers.

“The issues I resolved during the incident were entirely preventable, if we had basic procedures in place and people actually followed them. I’ve been trying to bring them in myself, but given the incident, and the fact I haven’t been given the time to do so makes me feel nobody else cares, as such... IM OUTTA HERE BITCHES, as CTO is away, you can give him the news”

God I wish. I don't have the offer yet from the new company - yesterday was my first interview. Today they sent over a code project to work on and I'm not confident I'll be able to complete it within the next 4-5 days, primarily due to pre-existing life commitments.

minato
Jun 7, 2004

cutty cain't hang, say 7-up.
Taco Defender
There's a Linus talk from 2007 @ Google where he's simultaneously self-deprecating ("I'm a bad speaker! My slides are bad!") and super :smug: ("You're all dumbasses for not using Git"). As I recall, the audience is pretty hostile by the end.
https://www.youtube.com/watch?v=4XpnKHJAok8

Jaded Burnout
Jul 10, 2004


I have just now realised that I constantly conflate Linus and RMS

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!

rt4 posted:

The hashes are cool because then you can do things like quickly verify the result of a merge is identical to what you may have already tested, for example
Oh absolutely but you give this guy too much of the benefit of doubt. He was all about dumping out the history with the log command and flying back and forth between them using their hashes. If he did anything else he would make sure to point out the hash code changed too. Like that was the cool thing or whatever.

You also should have put a trigger warning before "tested." That was definitely not in the cards, the entire deck of cards, or the store where they bought the cards.

Paolomania
Apr 26, 2006

minato posted:

There's a Linus talk from 2007 @ Google where he's simultaneously self-deprecating ("I'm a bad speaker! My slides are bad!") and super :smug: ("You're all dumbasses for not using Git"). As I recall, the audience is pretty hostile by the end.
https://www.youtube.com/watch?v=4XpnKHJAok8

Having been at big G for a few years I have to say I've become a fan of the monolithic repo. Keeping changes small, incremental, and close to mainline makes it so much easier not only to merge but also for code reviews. That in combination with reliable and ubiquitous network access and a repo that can take a hundred thousand developers hammering on it without any down time and most of the need for git's branch sophistication and distributed workflows goes away.

minato
Jun 7, 2004

cutty cain't hang, say 7-up.
Taco Defender
I had a similar experience at FB. The tech behind monorepos is quite incredible. There's a giant ecosystem of stuff most devs have never seen because they've never run into problems that monorepos have at large scale. For example it's essential to implement:
- sparse checkouts (and in turn be able to pull files on demand that weren't included in the sparse checkout)
- code search tools (that need to update as fast as developers land commits)
- hermetic build dependency systems like Bazel (or FB's equivalent, Buck)
- systems to queue and land approved commits (with retries), since HEAD is moving so fast

FB used Mercurial because it's written in Python, which makes it easier to hack on. God help Microsoft who commited (so to speak) to trying to scale up Git, which is all in C/C++.

Adbot
ADBOT LOVES YOU

Doom Mathematic
Sep 2, 2008

Paolomania posted:

Having been at big G for a few years I have to say I've become a fan of the monolithic repo. Keeping changes small, incremental, and close to mainline makes it so much easier not only to merge but also for code reviews. That in combination with reliable and ubiquitous network access and a repo that can take a hundred thousand developers hammering on it without any down time and most of the need for git's branch sophistication and distributed workflows goes away.

Is there an advantage to doing this with a monorepo, though? We do all of the things you mentioned and receive all of the benefits you mentioned, but we don't have a monorepo, we have a bunch of small repos. in a single GHE instance.

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