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
FlapYoJacks
Feb 12, 2009

necrobobsledder posted:

Let me take a wild guess - your coworkers are mechanical or electrical engineers originally?

Web programmers. :smith:

Adbot
ADBOT LOVES YOU

Munkeymon
Aug 14, 2003

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



ratbert90 posted:

That IS true!


Even worse; I do embedded Linux programming. :gonk:

Oh right - you're the guy in the secfuck thread who talks about trying to make actually secure embedded linux products. Goonspeed

Pollyanna
Mar 5, 2005

Milk's on them.


ratbert90 posted:

Web programmers. :smith:

I'm so sorry.

FlapYoJacks
Feb 12, 2009

Munkeymon posted:

Oh right - you're the guy in the secfuck thread who talks about trying to make actually secure embedded linux products. Goonspeed

That's me! It's possible; it's just that the entire embedded Linux industry doesn't give a poo poo about security because the entire industry came from RtOS land where they had "security" through obscurity.

Pollyanna posted:

I'm so sorry.

Thank you. :smith:

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane

ratbert90 posted:

Web programmers. :smith:

How do you get to be a programmer that someone would actually hire without learning something about memory management and the difference between the stack and the heap? Are these the sorts of shits being turned out by "boot camps" and "code dojos"?

ChickenWing
Jul 22, 2010

:v:

PT6A posted:

How do you get to be a programmer that someone would actually hire without learning something about memory management and the difference between the stack and the heap? Are these the sorts of shits being turned out by "boot camps" and "code dojos"?

I feel like there are a lot more self-taught people out there than anyone wants to admit, and the self-taught people I know have some gaping holes in their theory knowledge.

KoRMaK
Jul 31, 2012



PT6A posted:

How do you get to be a programmer that someone would actually hire without learning something about memory management and the difference between the stack and the heap? Are these the sorts of shits being turned out by "boot camps" and "code dojos"?

Yes.

https://www.youtube.com/watch?v=9Xy3QC7yxJw&t=1476s

https://www.youtube.com/watch?v=BSaAMQVq01E

KoRMaK
Jul 31, 2012



And its hard not to hire them. They are inexpensive and numberful. :-/

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost

ratbert90 posted:

Web programmers. :smith:
Wait, how do you web programmers working on embedded code? I wouldn't want to hire for the opposite direction either, FWIW.

PT6A posted:

How do you get to be a programmer that someone would actually hire without learning something about memory management and the difference between the stack and the heap? Are these the sorts of shits being turned out by "boot camps" and "code dojos"?
This has been an issue for over a decade with people concerned about "Java schools." IMO, people that graduated from places where they learned C or C++ at some point are not that much better anyway because they probably sucked at those basics and never moved onto anything much more advanced because they got caught up in the bookkeeping details. That is, if you were ever going to figure out stacks v. heaps and understanding why you don't run free or delete on a static array you declared in a method, you'll be fine. I've had to tutor people on C transitioning to Java back in the early 2000s and well... they had problems with everything in Java, too.

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane

ChickenWing posted:

I feel like there are a lot more self-taught people out there than anyone wants to admit, and the self-taught people I know have some gaping holes in their theory knowledge.

I was self-taught inasmuch as I taught myself basic coding skills before studying computer science and software development properly. The idea of hiring someone who's completely self-taught is frightening to me, based on realizing how much I didn't know.


necrobobsledder posted:

Wait, how do you web programmers working on embedded code? I wouldn't want to hire for the opposite direction either, FWIW.
This has been an issue for over a decade with people concerned about "Java schools." IMO, people that graduated from places where they learned C or C++ at some point are not that much better anyway because they probably sucked at those basics and never moved onto anything much more advanced because they got caught up in the bookkeeping details. That is, if you were ever going to figure out stacks v. heaps and understanding why you don't run free or delete on a static array you declared in a method, you'll be fine. I've had to tutor people on C transitioning to Java back in the early 2000s and well... they had problems with everything in Java, too.

The university I attended started with Java, but that doesn't mean we didn't eventually get exposure to C and assembly. Not to mention, it's still possible, even useful, to discuss how memory is managed internally even if you're using a language that doesn't require you to manage memory directly.

Greatbacon
Apr 9, 2012

by Pragmatica

PT6A posted:

I was self-taught inasmuch as I taught myself basic coding skills before studying computer science and software development properly. The idea of hiring someone who's completely self-taught is frightening to me, based on realizing how much I didn't know.


The university I attended started with Java, but that doesn't mean we didn't eventually get exposure to C and assembly. Not to mention, it's still possible, even useful, to discuss how memory is managed internally even if you're using a language that doesn't require you to manage memory directly.

In my experience as a Java dev, garbage collection (or lack therof) and heap overflows tend to be some of the big issues that create chronic and/or hard to fix system problems and usually result in a senior dev or manager coming down into the trenches to fix them.

Huzanko
Aug 4, 2015

by FactsAreUseless

PT6A posted:

How do you get to be a programmer that someone would actually hire without learning something about memory management and the difference between the stack and the heap? Are these the sorts of shits being turned out by "boot camps" and "code dojos"?

Because there's a lot of programming that can be done and is done without having to know those things.

If someone who doesn't know those things is being hired to work on a system where knowing those things would be a benefit then that was a hiring mistake.

I know the basics of memory management, stacks, and heaps but I've never worked on anything where I've had to know them.

JawnV6
Jul 4, 2004

So hot ...

PT6A posted:

How do you get to be a programmer that someone would actually hire without learning something about memory management and the difference between the stack and the heap? Are these the sorts of shits being turned out by "boot camps" and "code dojos"?
A lot of problems don't depend on memory details. Like if the use case is "I need a distributed key/value store that can handle fast writes, no updates, and statistical sampling of old data" at no point does the memory arrangement of nodes need consideration. Like necrobobsledder was saying, at a certain point the bookkeeping overwhelms the time and blocks off higher-level consideration.

No Safe Word
Feb 26, 2005

KoRMaK posted:

And its hard not to hire them. They are inexpensive and numberful. :-/

If these are your primary criteria...

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane
I can see why, if you were self-taught, you might not have encountered it or had a need to know what it is, I'm just curious what sort of educational path other than being self-taught would result in you never coming across such things. There's lots of things I learned in university that I haven't used, but I still learned them.

Unless you know exactly what you'll be doing for the rest of your career as a developer, it's probably a good idea to try learning more than just things you think will be directly applicable to your job in the near future. A degree takes four years, there's enough time to cover memory allocation.

We had to take a mandatory course on operating systems. Was there gently caress all in there that I, personally, have used since? Nope, but that doesn't mean it was a bad idea to have it in there.

Huzanko
Aug 4, 2015

by FactsAreUseless

PT6A posted:

I can see why, if you were self-taught, you might not have encountered it or had a need to know what it is, I'm just curious what sort of educational path other than being self-taught would result in you never coming across such things. There's lots of things I learned in university that I haven't used, but I still learned them.

Unless you know exactly what you'll be doing for the rest of your career as a developer, it's probably a good idea to try learning more than just things you think will be directly applicable to your job in the near future. A degree takes four years, there's enough time to cover memory allocation.

We had to take a mandatory course on operating systems. Was there gently caress all in there that I, personally, have used since? Nope, but that doesn't mean it was a bad idea to have it in there.

I got an A+ in Operating Systems and a 100% on the final exam. I don't remember much from the course. Learning new things and forgetting things you don't use all the time is a real thing that happens.

Sometimes I think all programmers want is to feel more 1337 than the next crab in the bucket. Probably a side-effect of getting beaten up by jocks.

B-Nasty
May 25, 2005

Noam Chomsky posted:


Sometimes I think all programmers want is to feel more 1337 than the next crab in the bucket. Probably a side-effect of getting beaten up by jocks.

Probably some truth in that.

To play devil's advocate some more, an analogy might be asking a practicing medical doctor how many molecules of CO2 are produced per mole of Acetyl COA in the Krebs cycle. You can bet your rear end that question was somewhere in his biology final or on the MCAT, but it is not very relevant to his day-to-day work. Of course, there are some MD jobs where it would be used daily: metabolism research, etc.

I would want the doctor to know what those terms meant and to have enough familiarity with the Krebs cycle to know how to get the answer, but if I ran a hospital, I wouldn't make him whiteboard the answer during his interview. There's just too much scope to keep at the ready in your head at all times, and low-level computer science concepts, albeit fundamental ones, might not make the cut.

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings
Someone linked Bob up above, I'll follow up on this conversation with his words of wisdom on the matter:

quote:

I have been consistently disappointed by the quality of CS graduates. It’s not that the graduates aren’t bright or talented, it’s just that they haven’t been
taught what programming is really all about.

[...]

Of course, that’s the most extreme of a series of disappointments I’ve had while interviewing graduates. Not all CS graduates are disappointing—far from it! However, I’ve noticed that those who aren’t have something in common: Nearly all of them taught themselves to program before they entered university and
continued to teach themselves despite university.


An education will make you a *better* programmer if that's your thing, but it won't *make you a programmer*. And I think a lot of what's being described when we all look down our noses at :airquote:web developers:airquote: is the fact that there's an entire *breed* of coder who has never HAD to think about memory. Ever. And whose first line of problem solving is 'check stack overflow' or 'maybe there's an NPM package for that', rather than simply *considering the problem*.

Apparently schools these days don't even touch the old languages? It's all Java/Python? Look, I'm self-taught, so I'm one of the unwashed masses here - but goddamn if I don't thank fate every day that I started with C / C++ and fought my way through pointer errors, THEN moved onto languages where I could apply the same *thinking* without having to do the actual code around taking care of my memory.

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane

Noam Chomsky posted:

I got an A+ in Operating Systems and a 100% on the final exam. I don't remember much from the course. Learning new things and forgetting things you don't use all the time is a real thing that happens.

Oh, of course. I wouldn't expect anyone to remember everything they were taught in university instantly, but that's not necessarily the point. If you learned how to manage memory in C or C++, although you may have forgotten it between the time you learned it and the time you need it, it should come back fairly quickly. If you at no point had to manage memory during an entire software engineering degree or computer science degree, I can't help but feel you got shortchanged by the program itself -- any program worth its salt should expose students to a variety of languages and concepts, from low-level stuff to high-level stuff, which is why it's a degree program and not a technical certification you can get in a single semester.

Once you learn something, re-learning it is quick and easy compared to learning it in the first place, and it shouldn't have to involve your co-workers acting as teachers. Ideally, you will also have enough of a background to know what you need to read or study to find the answers you require.

B-Nasty
May 25, 2005

Cuntpunch posted:

Apparently schools these days don't even touch the old languages? It's all Java/Python? Look, I'm self-taught, so I'm one of the unwashed masses here - but goddamn if I don't thank fate every day that I started with C / C++ and fought my way through pointer errors, THEN moved onto languages where I could apply the same *thinking* without having to do the actual code around taking care of my memory.

I just checked my alma mater, and I was pleased to see that they still focus on basic programming in C and C++, data structures (C++), assembly language/architecture, automata theory, algorithms, discrete math, and stuff like that. I know people get down on college CS because it doesn't teach you the command line options for git, but the self-taught I know never learned that stuff.

It may not be entirely necessary, but it is too bad the fundamentals are easy to skip. I really enjoyed learning that stuff, but I have to admit I probably wouldn't have if I didn't do a formal CS program.

Vulture Culture
Jul 14, 2003

I was never enjoying it. I only eat it for the nutrients.
Yeah, there's a bunch of people who have no idea how to manage memory, but there's a pile of embedded systems programmers out there who have no idea how to manage client render performance too.

ToxicSlurpee
Nov 5, 2003

-=SEND HELP=-


Pillbug

Cuntpunch posted:

Someone linked Bob up above, I'll follow up on this conversation with his words of wisdom on the matter:

An education will make you a *better* programmer if that's your thing, but it won't *make you a programmer*. And I think a lot of what's being described when we all look down our noses at :airquote:web developers:airquote: is the fact that there's an entire *breed* of coder who has never HAD to think about memory. Ever. And whose first line of problem solving is 'check stack overflow' or 'maybe there's an NPM package for that', rather than simply *considering the problem*.

Apparently schools these days don't even touch the old languages? It's all Java/Python? Look, I'm self-taught, so I'm one of the unwashed masses here - but goddamn if I don't thank fate every day that I started with C / C++ and fought my way through pointer errors, THEN moved onto languages where I could apply the same *thinking* without having to do the actual code around taking care of my memory.

It depends on the school. Java is pretty big and from what I'm seeing a ton of the jobs are java ee Web stuff right now. That's what I ended up doing and I have a cs degree with strong math skills and theoretical fundamentals. From a kind of meh college but anyway...

Where I went we did c#, c++, assembly, and Java in the core, required classes. Other classes we did prolog, lisp, and some other odd things. Still we got exposed to a ton of different things. It started with c# though because starting people with C or c++ right now is kind of crazy. Learning to program is hard enough already. No sense staring at slogging through pointers. Then again so many jobs just don't deal with low level stuff I can see why some people didn't learn that.

Then again there's also a perpetual shortage of developers in general. Don't like 10% of people working in programming just plain not have any college degree at all? Others were math majors or engineers that learned to code. It's reasonable that a lot of those folks just didn't get exposed to the black magic that is low level code.

And why would it matter? Computers are hell of powerful now. If the program does what it is expected to do and doesn't eat all the resources it's good enough.

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane

ToxicSlurpee posted:

And why would it matter? Computers are hell of powerful now. If the program does what it is expected to do and doesn't eat all the resources it's good enough.

If you don't need to know it, and you don't know it, then there's obviously no problem. However, if you need to know it and you don't know it and your co-workers have to deal with the negative effects of your lack of knowledge, there's a problem. It doesn't matter what "it" is. There's either a problem with your education, a problem with the way you represented your education, or poor management asking you to do things you don't know how to do and don't have any training for, without giving you a chance to improve your skills.

The last option is perfectly valid, too. If you're asking someone who's never represented themselves as more than a Code Dojo graduate web developer to do development work in C or C++, that's more of a management or human resources issue than it is the fault of the web developer, just as it would be if you asked an embedded systems developer to just jump right into designing a front-end with no relevant experience or training.

smackfu
Jun 7, 2004

If people are expected to do a job they aren't trained for, that comes down to bad hiring / staffing.

ChickenWing
Jul 22, 2010

:v:

I worry a bit because I want to get into jobs that will likely require decent C++ skills and, while I'm better at pointers than most people I went to school with, I still only took two classes that dealt with C. Core classes were all java, fringe classes were all academic languages (let me tell you about Eiffel :shepface: ).

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...

ChickenWing posted:

I worry a bit because I want to get into jobs that will likely require decent C++ skills and, while I'm better at pointers than most people I went to school with, I still only took two classes that dealt with C. Core classes were all java, fringe classes were all academic languages (let me tell you about Eiffel :shepface: ).

This Book was pretty valuable when I made that leap as well.

KoRMaK
Jul 31, 2012



So in that uncle bob video, he posits that half of all programmers since the beginning of the field, have less than 5 years experience.

The issue I notice is that there's just a lack of experience from fresh programmers. How do you find an answer to a problem, when you don't even know what the problem is? That's the biggest abstract piece of wisdom I think I can point back to in the experience I have, and I see it lacking in newer people. Being able to go from no knowledge, to diagnosing the issue and finding a solution takes experience. You also have to have the drive to want to hack through that, which I don't think everyone possess.

ChickenWing
Jul 22, 2010

:v:

Volmarias posted:

This Book was pretty valuable when I made that leap as well.

Awesome, I'll take a look

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings

KoRMaK posted:

You also have to have the drive to want to hack through that, which I don't think everyone possess.

Ding ding ding.

CPColin
Sep 9, 2003

Big ol' smile.

KoRMaK posted:

So in that uncle bob video, he posits that half of all programmers since the beginning of the field, have less than 5 years experience.

The issue I notice is that there's just a lack of experience from fresh programmers. How do you find an answer to a problem, when you don't even know what the problem is? That's the biggest abstract piece of wisdom I think I can point back to in the experience I have, and I see it lacking in newer people. Being able to go from no knowledge, to diagnosing the issue and finding a solution takes experience. You also have to have the drive to want to hack through that, which I don't think everyone possess.

This is what I always try to get at when we interview people: "What was the worst bug you've encountered and how did you go about fixing it?" and "What are some of the first places you look when you encounter code you don't recognize?"

What I want to hear are answers like, "Well, I added some logging, opened the debugger, and..." or, "I banged my head against my desk for ten minutes, then rolled over to my coworker, who remembered seeing something a few months ago..." Basically anything besides "I don't know." or, "I haven't had do deal with a situation like that." which can happen, when interviewing super-green intern candidates who haven't done much programming outside of their major requirements.

KoRMaK
Jul 31, 2012



Current new guy had to debug something remotely, and was like "well I can't really debug because the inspector doesn't exist on mobile."

Our mobile app is just a cordova wrapper for our main SaaS web app.

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings
I'm personally a big fan of folks who debug by sticking a stdout-or-equivalent after every single line of code.

CPColin
Sep 9, 2003

Big ol' smile.
Better than nothing, at least!

Gounads
Mar 13, 2013

Where am I?
How did I get here?
Very timely. Yesterday, I hop on a screen share to help a fellow developer figure out an issue. Call ended with me taking 20 minutes to show him how to use an interactive debugger. He didn't even know it was an option.

I expect that was the most valuable 20 minutes I'll spend this quarter.

100 degrees Calcium
Jan 23, 2011



I'm a self-taught web developer who has been working professionally for six years. Can I be a good programmer if I study C++, or is it too late for me? :ohdear:

Vulture Culture
Jul 14, 2003

I was never enjoying it. I only eat it for the nutrients.

Cuntpunch posted:

I'm personally a big fan of folks who debug by sticking a stdout-or-equivalent after every single line of code.
don't knock trace logging, especially for distributed systems

baquerd
Jul 2, 2007

by FactsAreUseless

Vulture Culture posted:

don't knock trace logging, especially for distributed systems

Until you have to turn off the trace level logging because they cost more to process and store than your actual data, literally doubling hardware costs in some cases. The real trick is to actively audit your system with a basic expert system AI so that the only logs produced are the ones that need to be looked at.

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost
God help you if you can't ever use a distributed tracer like Dapper, Zipkin, HTrace in your distributed microservice based architecture.

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane

GlitchThief posted:

I'm a self-taught web developer who has been working professionally for six years. Can I be a good programmer if I study C++, or is it too late for me? :ohdear:

As long as you know what you don't know, and actually teach yourself if you need to learn it someday, yes. This goes for all programmers/developers of course, but I've noticed it's a particular weakness with self-taught developers (and it's definitely something I've had to be careful to remember personally as well).

Adbot
ADBOT LOVES YOU

ToxicSlurpee
Nov 5, 2003

-=SEND HELP=-


Pillbug

GlitchThief posted:

I'm a self-taught web developer who has been working professionally for six years. Can I be a good programmer if I study C++, or is it too late for me? :ohdear:

That depends on if you're willing to learn its quirks. Learning c++ takes more effort than learning html. It probably isn't too late you just need to read about the language, pointers, memory management and such.

The biggest issue comes from people that make assumptions. Don't make assumptions about c or c++. So many things don't work the way you'd expect. But really if you're willing to put in the hours and work with the language rather than against it you'll be fine.

Then again this is coming from somebody that dislikes c++ and sticks to things like c# or java so take that as you will.

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