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
FMguru
Sep 10, 2003

peed on;
sexually
Anyone looking for a free way to freshen up their skills should check if their public library has a subscription to Lynda.com and its collection of training videos. Mine does, and it's a $240/yr value.

Adbot
ADBOT LOVES YOU

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.

Pollyanna posted:

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?

Are you solving the same problem with small variations, again and again?
Are you learning things that only pertain to the innards of the system you work with?
Are you not improving with any of the skills that you use professionally?

Opportunities (either assignments while working one job or more importantly choice of job) are a big, big, big determiner imho, unless you think you can make a significant side-project portfolio.

I think this is a good question but I'm also kind of concerned. Personally, Pollyanna, I find that when my thoughts are focused on "avoiding negative career outcomes" I am generally in a bad emotional place and I make worse decisions than when my thoughts are focused on "pursuing positive career outcomes".

Munkeymon
Aug 14, 2003

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



lifg posted:

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.

Employers also, once upon a time, spent money training people up on new stuff instead of firing them and replacing them with new hires, or so I'm told.

fritz
Jul 26, 2003

necrobobsledder posted:

I must refrain from printing out How comments and leaving it in the break room at work

I don't see why?

School of How
Jul 6, 2013

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

leper khan posted:

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.

There is no point in learning something new if you're aren't going to ever use the thing you learn. Just learning something for the sake of learning something is likely to be a waste of time, unless you plan to use the thing you learn for more than 2 hours on a single weekend. If you read a technical book every month, after a few months, you'll start to forget the books you've read, and may end up reading the same book twice and not even realizing it.

My suggestion for learning something new is to first discover some software that doesn't yet exist that you want to exist, and then set out to learn whatever you need to make it exist.

Achmed Jones
Oct 16, 2004



Lmao

Careful Drums
Oct 30, 2007

by FactsAreUseless
Wow I thought "build what you wish existed to learn" was a good strat but now I'm questioning that.

I suppose writing souped-up TODO apps would let you learn to work with new things a lot faster than trying to magic up the future with languages and frameworks you don't know.

kayakyakr
Feb 16, 2004

Kayak is true

Careful Drums posted:

Wow I thought "build what you wish existed to learn" was a good strat but now I'm questioning that.

I suppose writing souped-up TODO apps would let you learn to work with new things a lot faster than trying to magic up the future with languages and frameworks you don't know.

I mean, as far as How's advice in this thread goes.. it's not his worst idea. To paraphrase, "start a new project that makes uses of new tech".

I mean, I'm a 'doer' rather than a 'reader' and I'd rather write a new side project that might have some economic value rather than a hello-world app, so I guess I follow How's advice?

Unless I'm giving How far too much credit and his suggestion to learning new things is to build new things.

lifg
Dec 4, 2000
<this tag left blank>
Muldoon
There's no wrong way to learn new things.

No Safe Word
Feb 26, 2005

lifg posted:

There's no wrong way to learn new things.

What? Sure there is. You learn how to do those things the wrong way that then requires unlearning them so you can do them the right way. That's the wrong way to learn those things.

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost
Defining "wrong" and "right" in terms of each other is pretty asinine. "Wrong" in terms of any form of learning initiative means you simply don't learn anything despite spending time or actively prevents you from learning anything new - this is the big danger with staying in the same job for n years doing mostly the same things. Whether what you learn is relevant, "correct" or so forth depends upon what you want out of learning. Stanley Kubrick isn't a worse director than James Cameron if Eyes Wide Shut makes less than a billion dollars because that wasn't his intent. Why grade oneself upon criteria you didn't set or agree to?

Pollyanna
Mar 5, 2005

Milk's on them.


prisoner of waffles posted:

Are you solving the same problem with small variations, again and again?

I mean, not really. Same lovely codebase, same ill-defined product, same language and framework, same kind if technology. But it’s not like it’s the same problem over and over, if it was I would have automated it away long ago (and I have, for the ones that were). That said, it does feel stale and pointless, mostly because of poor planning and bad product ideas.

quote:

Are you learning things that only pertain to the innards of the system you work with?

Well yeah, that’s called a job. A company pays you to maintain an existing product and implement/fix stuff as needed. The hard part is never generic, it’s always about archaeology and investigation into the stupidity in front of you. That’s the grand majority of our problems as developers, wrapping our brains around things we don’t know and learning how to make that faster and easier. Oftentimes that involves (EDIT: for example) cornering Engineer X and getting them to tell you what database backs the reporting service and what stored procedures and tables are involved.

quote:

Are you not improving with any of the skills that you use professionally?

In some ways yes, others no. Ruby/Rails stuff is the same as ever, but I’ve been doing AWS stuff recently too. That said, there is nothing new under the sun for the core product, because it’s mostly a configuration store. Also, I now know loving loathe reporting and anything involving data warehouses and poo poo, because poor implementation is directly contributing to my recent daily pain.

Really, I haven’t grown much as a programmer in the past couple years, but I’ve grown a lot as a developer. I’ve learned how to:

- take lead on a project/epic and see it to completion
- coordinate with other teams and engineers to unblock myself and get poo poo done
- prevent stupid misunderstandings and misconceptions between technical and nontechnical individuals and temper expectations
- drag arcane knowledge with a bus factor of 1 into the light so we don’t work with useless poo poo
- jump into new and unfamiliar codebases when no one else can or wants to do the work
- make up for holes in a team’s organizational capabilities by being involved in things that other teams and organizations need from us (i.e. de facto team representative)
- advocate for not doing stupid poo poo wherever possible

and that has made a hell of a difference. I’m less impressed by someone who can write a graph traversal algorithm than by someone who can integrate two lovely monoliths maintained by 2.5 engineers total without losing their mind and making it impossible to understand for future generations.

Pollyanna fucked around with this message at 22:43 on Aug 16, 2019

kayakyakr
Feb 16, 2004

Kayak is true

Pollyanna posted:

I mean, not really. Same lovely codebase, same ill-defined product, same language and framework, same kind if technology. But it’s not like it’s the same problem over and over, if it was I would have automated it away long ago (and I have, for the ones that were). That said, it does feel stale and pointless, mostly because of poor planning and bad product ideas.


Well yeah, that’s called a job. A company pays you to maintain an existing product and implement/fix stuff as needed. The hard part is never generic, it’s always about archaeology and investigation into the stupidity in front of you. That’s the grand majority of our problems as developers, wrapping our brains around things we don’t know and learning how to make that faster and easier. Oftentimes that involves (EDIT: for example) cornering Engineer X and getting them to tell you what database backs the reporting service and what stored procedures and tables are involved.


In some ways yes, others no. Ruby/Rails stuff is the same as ever, but I’ve been doing AWS stuff recently too. That said, there is nothing new under the sun for the core product, because it’s mostly a configuration store. Also, I now know loving loathe reporting and anything involving data warehouses and poo poo, because poor implementation is directly contributing to my recent daily pain.

Really, I haven’t grown much as a programmer in the past couple years, but I’ve grown a lot as a developer. I’ve learned how to:

- take lead on a project/epic and see it to completion
- coordinate with other teams and engineers to unblock myself and get poo poo done
- prevent stupid misunderstandings and misconceptions between technical and nontechnical individuals and temper expectations
- drag arcane knowledge with a bus factor of 1 into the light so we don’t work with useless poo poo
- jump into new and unfamiliar codebases when no one else can or wants to do the work
- make up for holes in a team’s organizational capabilities by being involved in things that other teams and organizations need from us (i.e. de facto team representative)
- advocate for not doing stupid poo poo wherever possible

and that has made a hell of a difference. I’m less impressed by someone who can write a graph traversal algorithm than by someone who can integrate two lovely monoliths maintained by 2.5 engineers total without losing their mind and making it impossible to understand for future generations.

You just described growing from a junior to a mid/senior developer. Well done!

Pollyanna
Mar 5, 2005

Milk's on them.


are you sure though

Blinkz0rz
May 27, 2001

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

Pollyanna posted:

are you sure though

100%

You're doing great. Keep going.

rotor
Jun 11, 2001

classic case of pineapple derangement syndrome

Pollyanna posted:

- take lead on a project/epic and see it to completion
- coordinate with other teams and engineers to unblock myself and get poo poo done
- prevent stupid misunderstandings and misconceptions between technical and nontechnical individuals and temper expectations
- drag arcane knowledge with a bus factor of 1 into the light so we don’t work with useless poo poo
- jump into new and unfamiliar codebases when no one else can or wants to do the work
- make up for holes in a team’s organizational capabilities by being involved in things that other teams and organizations need from us (i.e. de facto team representative)
- advocate for not doing stupid poo poo wherever possible


So, How, if you want to get a job as a senior dev you can start doing this stuff here and internalizing it's deep wisdom or you can continue complaining about how the world is screwed up and everyone is wrong except you and sit there fixing the same problems every 15 minutes until you get laid off and no one else will hire your sorry rear end because no one wants a junior engineer with 15 years experience.

I sincerely hope you pick the second one but whatever.

Xik
Mar 10, 2011

Dinosaur Gum
This article What makes a developer senior? just popped up and seems pretty timely. Some of it has cross over on what posters have already said and seem to fit the paths of some (not all) senior developers I know. Eg: More architectual, more responsibility, higher influence etc.

e: it also touches on Experience vs Time.

quote:

Its worth mentioning that time is needed in order to grow along each of these arcs, but it is not sufficient.

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.

Pollyanna posted:

are you sure though

I am.

Doh004
Apr 22, 2007

Mmmmm Donuts...

Pollyanna posted:

are you sure though

Blinkz0rz posted:

100%

You're doing great. Keep going.


Yep - you get it now.

Infinotize
Sep 5, 2003

You love to see it.

Don’t worry though, the cynicism only gets worse. You just learn when to turn it on and off better.

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

Infinotize posted:

The cynicism only gets worse. You just learn when to turn it on and off better.

Truths here.

rsjr
Nov 2, 2002

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

Infinotize posted:

Don’t worry though, the cynicism only gets worse. You just learn when to turn it on and off better.

You become the jaded, cynical person that complains all the time or the person that recognizes the system for what it is, flaws and all, and gets things done without so much judgment. Recognizing the system for what it is, for me, meant recognizing that the people problems are much harder than the technical problems. And anything worth doing once you get to a certain level involves people across the entire organization.

Improving your emotional intelligence, understanding the motivation of everyone involved and better communication skills even when not in a management position makes your life much easier.

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost
Similar to the How to Ask Questions the Smart Way methodology, there's standard complaining (whinging basically) or constructive criticisms. I complain about things but I also offer solutions with decent ROI, actively work to fix problems, put in some work to show how things could be, and make sure I reinforce the things that are working very well that I had almost nothing to do with. When I was younger, I complained and suggested stuff that just didn't have the ROI (because I didn't understand how slow most places can be to write new code when I would write some stuff in half hour bursts for demos).

return0
Apr 11, 2007

Pollyanna posted:

Well yeah, that’s called a job.

While jobs can involve grinding and soldiering, ideally a really good software job should involve solving problems that stretch your creative technical capabilities as a developer, as well as the comms and social issues you’ve described.

Good places tend have these opportunities more due to the scale they work at, and it’s pretty good working at a good place with smart and mature people you can learn from and grow with.

I’ve had decent success with this at the big companies, but have also lucked out on a small startup before where everything clicked. It’s definitely worth trying the big tech company route next time you change jobs. Amazon, Google, Microsoft, etc., all have teams where it’s better than what you describe, in terms of the opportunity for self development in a high functioning team environment where you don’t only learn effective defensive mechanisms.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!
I had tried messing around with The Little Schemer, eventually just skimmed through it, and then just put it away. I was hoping for something to help poke me on thinking naturally more recursively and get into a more functional programming mindset. Instead, it was kind of just a little refresher on about 8 weeks of subject matter from one course in college years ago. The one thing it reminded me to do is make sure that something always changes when recursing. Is there anything else I might want to look at to get a good brainwashing?

Also, I guess Racket has replaced Scheme and stirred things up a little bit. Not much has changed fundamentally so it was too rough to get started with the coding questions that I did from the book before giving up.

RobertKerans
Aug 25, 2006

There is a heppy lend
Fur, fur aw-a-a-ay.

Rocko Bonaparte posted:

I was hoping for something to help poke me on thinking naturally more recursively and get into a more functional programming mindset. Instead, it was kind of just a little refresher on about 8 weeks of subject matter from one course in college years ago. The one thing it reminded me to do is make sure that something always changes when recursing. Is there anything else I might want to look at to get a good brainwashing?

Do you want it specifically to be taught as a Lisp? And what language/s would you want to be applying the ideas to?

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!

RobertKerans posted:

Do you want it specifically to be taught as a Lisp? And what language/s would you want to be applying the ideas to?

No I don't particularly care about LISP. If I want my cake and eat it too, then I think my ideal book title would be Crazy Recursive Brain Explosions In F#.

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


How about building a compiler for scheme? Write Yourself a Scheme in 48 Hours is a project-based introduction to Haskell that has you putting together a non-trivial piece of software, and it'll get you understanding why functional programming is a good match for compilers.

Paolomania
Apr 26, 2006

Paolomania posted:

That is kind of what I was hoping for direction on. It is hard to make a choice when I don't have a clear view of the options (as they exist at this company). I could see myself going after any of architect, eng manager, or maybe even heading product side but I really don't know what existence is like down those roads.

To follow up on this: had my mentoring session. It was great. I didn't get answers so much as strategies and criteria for future decision making. TLDR: more growth opportunities will come from higher risk projects, so seek risk when you feel stagnant; network with +1 and higher to learn from their paths and become more visible; shoot for tech lead in the near term and branch out from there.

RobertKerans
Aug 25, 2006

There is a heppy lend
Fur, fur aw-a-a-ay.

Rocko Bonaparte posted:

No I don't particularly care about LISP. If I want my cake and eat it too, then I think my ideal book title would be Crazy Recursive Brain Explosions In F#.

Ah, cool. Tbh when I was thinking about it, outside of Lisps there seem to be a lack of books that are written (and written well) as a kind of intellectual exercise done for the pleasure of programming (why's Poignant Guide maybe?) I know the Little Schemer isn't quite that, but it is a bit like a puzzle book, and there isn't loads of stuff that's similar or as specific to recursion. Land of Lisp/Realm of Racket maybe a bit similar? There are a few weird Prolog ones which are a bit like it, but that's logical not functional

That Haskell book looks good, but Haskell makes my head hurt

Clojure for the Brave and True is kinda good but maybe the way it's written might be a bit of a turnoff, I couldn't be arsed with it but YMMV, I'm just looking at it now and I might give it another go

Beautiful Racket is really good, but it's more about writing languages using Racket as the tool than it is functional programming. Butterick is a good writer, so not boring.

Michael Fogus can write, I liked The Joy of Clojure, but didn't really go deep into it. Functional JavaScript is one of the most useful technical books I've ever read. His blog had interesting stuff he'd read put up every so often and is worth a look

Real World OCaml is good, v practical though, not very fun.

Video, but Coursera's Programming Languages Part A is in SML and is v v good (Part B is in Racket, and Part C is in Ruby as a comparison between OO and Functional approaches, all are also good).

Functional Programming using Standard ML by Ake Wikström is ancient (1987) but SML seems to be exactly the same now as then and it's only a few quid in Amazon.I got it for 50p, covers much the same ground as the Coursera course, v dry but it's pretty good.

Pragmatic Bookshelf's Functional Programming anthology is a nice dive into a few different languages. Same for the two Seven Languages in Seven Weeks books. They've got a load of Elixir books which might be Interesting: Learn Functional Programming with Elixir is probably the most relevant, Programming Elixir probably the best.

Fred Hebert's books are great (Learn You an Erlang! & Property-Based Testing); Erlang/Elixir is functional and would give you a brainwashing, but the language being functional isn't the main draw, it's the system, so YMMV again

RobertKerans fucked around with this message at 14:06 on Aug 20, 2019

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings

Rocko Bonaparte posted:

No I don't particularly care about LISP. If I want my cake and eat it too, then I think my ideal book title would be Crazy Recursive Brain Explosions In F#.

And FSharp for Fun and Profit isn't book-like enough for you?

taqueso
Mar 8, 2004


:911:
:wookie: :thermidor: :wookie:
:dehumanize:

:pirate::hf::tinfoil:

There are some pretty brain exploding sounding titles when i search for recurs* on libgen.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!

Cuntpunch posted:

And FSharp for Fun and Profit isn't book-like enough for you?

I don't even know. Since somebody asked, I just vomited what was really getting me at that exact moment (due to talk about F# here and elsewhere).

Edit: That sounded particularly lazy, but the situation was that I had picked up The Little Schemer on some hopes of getting better at my recursive thinking, and was generally disappointed with the pacing and such. I haven't rallied to try something else yet and instead decided to ask in hopes that I don't gently caress it up again. Since I was being asked for details, I decided to throw in other topics of curiosity and F# was one of them. That site seems cool but I haven't dug into it.

Rocko Bonaparte fucked around with this message at 21:12 on Aug 20, 2019

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

Rocko Bonaparte posted:

I don't even know. Since somebody asked, I just vomited what was really getting me at that exact moment (due to talk about F# here and elsewhere).

Edit: That sounded particularly lazy, but the situation was that I had picked up The Little Schemer on some hopes of getting better at my recursive thinking, and was generally disappointed with the pacing and such. I haven't rallied to try something else yet and instead decided to ask in hopes that I don't gently caress it up again. Since I was being asked for details, I decided to throw in other topics of curiosity and F# was one of them. That site seems cool but I haven't dug into it.

Read and work through a bunch of inductive proofs.

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings

Rocko Bonaparte posted:

I don't even know. Since somebody asked, I just vomited what was really getting me at that exact moment (due to talk about F# here and elsewhere).

Edit: That sounded particularly lazy, but the situation was that I had picked up The Little Schemer on some hopes of getting better at my recursive thinking, and was generally disappointed with the pacing and such. I haven't rallied to try something else yet and instead decided to ask in hopes that I don't gently caress it up again. Since I was being asked for details, I decided to throw in other topics of curiosity and F# was one of them. That site seems cool but I haven't dug into it.

While functional languages tend to have more idiomatic support for recursion, it's also possible that tackling a whole new language at the same time may muddy the waters as well?
Have you considered going back to familiar code you've written and try to rewrite iterative blocks recursively instead? That way you're working in a familiar language, and you're working in a familiar domain, so you can focus your learning efforts purely on the process of thinking recursively?

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!

leper khan posted:

Read and work through a bunch of inductive proofs.

Hey now, half the reason I muttered about F# was from posts in another thread (.NET thread?) you were making and then you had to go in this direction. Granted, inductive proofs was, like, the only part of discrete math I actually could do. That's one of the classes I have to retake in my recurring "oh gently caress I have to go back to my old college and finish poo poo" nightmare.

Cuntpunch posted:

Have you considered going back to familiar code you've written and try to rewrite iterative blocks recursively instead? That way you're working in a familiar language, and you're working in a familiar domain, so you can focus your learning efforts purely on the process of thinking recursively?

I'm guessing that the brain damage I want inflicted on me will result in me looking at every for loop in a normal language with derision. Another thing I'm just generally hoping is to just think more naturally about divide-and-conquer stuff for coding interviews. Fortunately, that has been less severe than I thought when trying things. Instead, I've been having to battle my legacy of a decade doing electrical engineering automation instead.

kayakyakr
Feb 16, 2004

Kayak is true
See, as soon as How stops posting, this thread goes back to being dead.

Doh004
Apr 22, 2007

Mmmmm Donuts...
Tried to come up with a joke about the thread being oversaturated but I failed and this was all I got.

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
I'm taking time off from working a regular job and goddamn this is amazing. My stress level is the lowest it's been in years, I'm hardly depressed at all, I'm sleeping well, I'm working on things I find personally interesting and enjoyable.

The lack of any kind of regular income is a downside, I will admit. But man, there are some things you don't realize are hosed up about your life until you're able to get outside of them for a bit.

Adbot
ADBOT LOVES YOU

opposable thumbs.db
Jan 7, 2008
It's hard to say that it's wrong that my life revolves around my dog when she is cuter and more interesting than me
Pillbug
We also had one poster (Careful Drums) get permabanned.

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