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
baquerd
Jul 2, 2007

by FactsAreUseless

Shirec posted:

I'm already on thin ice because the last refactor (the code I mentioned from last week? I think) ended up having unexpected results because it was so quick it was calling the api before the first section was done (the first section is required to be done on a separate platform before the second can fire but he wants it all done async).

Are you using callbacks or status polling endpoints? The guy is a dick but this is a reasonable problem that should have been foreseen or caught.

Adbot
ADBOT LOVES YOU

Shirec
Jul 29, 2009

How to cock it up, Fig. I

baquerd posted:

Are you using callbacks or status polling endpoints? The guy is a dick but this is a reasonable problem that should have been foreseen or caught.

I wasn't originally because I was sending the information grouped up so that it would be bundled with all the sections together. The last re-factor where he basically told me exactly what to do, I didn't think of it until I started testing. I agree it was something I should have thought of, but to be fair, the end points were being created for me to call so I was testing blind for most of last week until it got completed.

edit: Oh god, am I a lovely programmer? I know I'm really new but god drat, maybe it is me

Shirec fucked around with this message at 00:20 on Apr 3, 2018

teen phone cutie
Jun 18, 2012

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

geeves posted:

Mapping data from one structure to another for the presentation view (or any other reason)? That's just common software engineering / CRUD-style development. I would think this will be more common these days with and without Node.js as a backend service.

I'd be interested in knowing what the questions were from the test. Database design and basic SQL, JOIN, GROUP BY is really good knowledge to have and how to use SQL, how to further write algorithms to transmogrify data into its final form for your DumbReactComponentList is just good stuff to know regardless of language and will help communication between front-end and back-end speak. We have a few services that just spit out raw Solr JSON and it's all front-end heavy to get this data and map/reduce/filter it to what is actually needed to display correctly.

The JS world wanted to have their language work on a server and have connections to mysql, mongo, etc. Well, these could be the consequences for the industry because of it. It's possible to think that more can be expected of the day-to-day JS developer.

I don't want to give away too much in case someone does detective work to find the company, but one of the questions that was particularly hard was one the dealt with combining hashes, but there were a bunch of conditionals to how they had to be merged.

For example, you have two objects

JavaScript code:
{
    key1: [2, 3, 5, 6],
    key2: 'hello world',
    key3: {
        sub1: 1,
        sub2: [25, 6, 5]
    }
}

{
    key1: [3, 5, 6],
    key2: 'foo bar',
    key3: {
        sub1: 5,
        sub2: [3,5,6]
    },
    key4: 'baz'
}
if the value in an array, concat the array from the second object onto the array of the first
if the value is an string or number, use the value from the second object
if the value is another object, iterate over that object. previous rules apply

so the result needs to look something like this

JavaScript code:
{
    key1: [2, 3, 5, 6, 25, 6, 5],
    key2: 'foo bar'
    key3: {
        sub1: 5,
        sub2: [25, 6, 5, 3, 5, 6]
    },
    key4: 'baz'
}
This question really humbled the poo poo out of me because I realized that I'm not great with recursive functions and combining objects.

Harriet Carker
Jun 2, 2009

Grump posted:

I don't want to give away too much in case someone does detective work to find the company, but one of the questions that was particularly hard was one the dealt with combining hashes, but there were a bunch of conditionals to how they had to be merged.

For example, you have two objects

JavaScript code:
{
    key1: [2, 3, 5, 6],
    key2: 'hello world',
    key3: {
        sub1: 1,
        sub2: [25, 6, 5]
    }
}

{
    key1: [3, 5, 6],
    key2: 'foo bar',
    key3: {
        sub1: 5,
        sub2: [3,5,6]
    },
    key4: 'baz'
}
if the value in an array, concat the array from the second object onto the array of the first
if the value is an string or number, use the value from the second object
if the value is another object, iterate over that object. previous rules apply

so the result needs to look something like this

JavaScript code:
{
    key1: [2, 3, 5, 6, 25, 6, 5],
    key2: 'foo bar'
    key3: {
        sub1: 5,
        sub2: [25, 6, 5, 3, 5, 6]
    },
    key4: 'baz'
}
This question really humbled the poo poo out of me because I realized that I'm not great with recursive functions and combining objects.

I do almost exclusively front end these days and while this specific example out of any context might seem contrived its really important to be able to do things like this for front end work. The data coming from the API will often not have a structure that makes it easy for you to map it to the designs and you should be pretty comfortable manipulating it in this sort of manner. If you practice a bit youll get it!

Also, Shirec, based on your history here, if you ever have to ask Is x normal the answer is no, it absolutely isnt. Your workplace and boss are complete nightmares and if I were you Id put in the minimum of effort there and spend your energy almost entirely looking for other work. Nobody should have to deal with such awful conditions.

Harriet Carker fucked around with this message at 00:25 on Apr 3, 2018

Volguus
Mar 3, 2009

Grump posted:

code ...

Aha, here's a spot where it would be important to test obj.key1 === undefined and not feel that we want to become a compiler. Of course, in a normal language this would have been just maps and arrays, but we live with what we have.

Che Delilas
Nov 23, 2009
FREE TIBET WEED

Shirec posted:

I wasn't originally because I was sending the information grouped up so that it would be bundled with all the sections together. The last re-factor where he basically told me exactly what to do, I didn't think of it until I started testing. I agree it was something I should have thought of, but to be fair, the end points were being created for me to call so I was testing blind for most of last week until it got completed.

edit: Oh god, am I a lovely programmer? I know I'm really new but god drat, maybe it is me

First, hindsight is 20/20. "I should have thought of that" is an understandable reaction but a better one is, "Oh I didn't think of that. Let's fix it."

Second you are not a lovely programmer because you made a mistake or didn't think of something. You're going to write lots and lots of bugs in your career, I promise. Furthermore, if you have a fixed deadline and a nonexistent or bad testing/QA process (which is the fault of your organization, not you personally), lots and lots of bugs are going to get into production. That's a fact. You can try and improve that but I wouldn't waste your time at that job.

geeves
Sep 16, 2004

dantheman650 posted:

I do almost exclusively front end these days and while this specific example out of any context might seem contrived its really important to be able to do things like this for front end work. The data coming from the API will often not have a structure that makes it easy for you to map it to the designs and you should be pretty comfortable manipulating it in this sort of manner. If you practice a bit youll get it!

Agreed. Something like this is more often what day-to-day programming is like than whiteboarding some data structure that you might use twice in a 20 year career. A lot of the back-end stuff is just like this as well reformatting multiple objects into a view for the front-end or getting it prepared to send to another service.

Recursion takes a bit to get into that mindset, especially when you don't do recursion that often.

But these skills just make it easier to transition to the back-end. Add SQL to the list and now you're pretty much full-stack.

baquerd
Jul 2, 2007

by FactsAreUseless

Che Delilas posted:

First, hindsight is 20/20. "I should have thought of that" is an understandable reaction but a better one is, "Oh I didn't think of that. Let's fix it."

Second you are not a lovely programmer because you made a mistake or didn't think of something. You're going to write lots and lots of bugs in your career, I promise. Furthermore, if you have a fixed deadline and a nonexistent or bad testing/QA process (which is the fault of your organization, not you personally), lots and lots of bugs are going to get into production. That's a fact. You can try and improve that but I wouldn't waste your time at that job.

Yeah. Also when bosses get micromanagey, I've noticed this tends to shut down the thinking process of the implementers. Same with aggressive yelling. Basic mismanagement of creative workers.

AAAAA! Real Muenster
Jul 12, 2008

My QB is also named Bort

Hi thread, I've posted in here a few times before but I am going to lay this out a little since I am trying to figure out my next steps. I am a QA that started as a QA around a year ago with no prior QA or dev experience and have been doing a great job so far. I am at a SaaS company and we have quite a bit of QA automation stuff going on, but it is all handled by offshore/outsourced devs (all the onshore people were laid off or quit when the company was about a year and a half ago). I've been curious about and interested in coding for a long time and taught myself AutoHotKey to automate a bunch of work at my old job in support at this same company; some people told me that if I can teach myself that and understand the logic of what is going on, actual coding is a logical and achievable goal. I do not have a college degree; I have no Computer Science background or formal training.

My current boss is aware of my desire to learn how to code in the interest of learning Automation. She has indicated to me that she thinks it would be very advantageous if I learn about Databases and SQL. I imagine this is so I can run database queries and be able to check the database for certain bits of information, but with my lack of CS background I have no idea where to get started on learning that kind of stuff. I have taken a lot of notes reading this thread and I understand that Harvard University's free CS50 may be a good place for me to start understanding some of the bare bones basics so I'm not silo'ing my knowledge or simply going into something more advanced blind.

As some additional info, I have started a tutorial to write a discord bot but stalled out when some concepts got a little too advanced for me. I also started an Android N course that I got on sale on Udemy because a friend recommended it and I would love to be able to write basic apps as a hobby, but have put this on hold because I feel like it is very hand-holdy and there are again some seemingly basic concepts that the course glosses over assuming it is knowledge that I already have. Both of these things have reinforced my gut feeling that I should try to learn some more basic CS. Therefore, does the thread think I should focus on doing the Harvard University's free CS50 (or a similar) class first before branching out, or is there a step I missed somewhere?

Oh and taking the time to try to get a full CS degree is essentially off the table as my free time is currently pretty limited, but not so much so that I would not try to complete some of these self-directed online courses. I also do not feel that going through that effort is necessary if I find the right resources online.

lifg
Dec 4, 2000
<this tag left blank>
Muldoon
What concepts are causing you trouble?

Most people learn programming by jumping into a beginners course on something they like. If you enjoy Android development, continue that. If you need SQL for work, learn that too. Then its a matter of steadily broadening your knowledge to cover related areas.

CS50 looks like a broad introduction to the field. I love stuff like that, and it will definitely teach you how to think like a computer scientist. If youre sure this is what you want to do, it sounds like a strong way to start your education. But its definitely not the only way to become a programmer.

huhu
Feb 24, 2006
Collection of random thoughts...

It sounds like you don't quite know what you want to do. What you need to build an app versus a backend website, are similar but vastly different. It definitely took me time to figure out exactly what I wanted to do. I don't think best jumping all over the place might be the best idea though.

Also, getting stuck on difficult concepts is a common part of programming. I feel like each new problem I encounter is just a difficult as the last, it's more about building a skillset to solve them.

One strategy I have whenever I don't understand something is to break it down. Then look up each piece I don't understand and repeat until I understand it all and build everything back up to understand the original issue.

reversefungi
Nov 27, 2003

Master of the high hat!

I'm one of those people who keeps recommending CS50 on this thread, and this post is no different.

The first half is devoted to a lot of foundational stuff. You'll look at C, some algorithms (tries, BSTs, stacks, queues, etc.), and do a couple of pretty challenging projects.

The second half is all in Python with Flask + SQLite (and some JavaScript front end stuff) so you'll get some basic experience writing simple SQL queries and hooking that up to a web app. I think they do a fantastic job of pushing you into it without holding your hand, but without leaving you completely floundering either. If your company is doing web work/you're interested in web dev, then I think this is a great way of getting a good taste of both the fundamentals and the more higher level topics. Definitely give it a look if you feel that this would be right for you!

huhu
Feb 24, 2006
Part rant part question...

I've been learning/doing web dev for about 3 years now and I'd say I have a pretty solid understanding of lots of disparate concepts. However, I still struggle with random interview questions like what does REST mean or what is the difference between HTTP/1.1 and HTTP/2.0. For REST, I spend most of my time building with Django REST Framework so I'm like I know this I just don't know the vocab for it. For the HTTP thing, I spent less than 5 minutes watching a tutorial and I'm like yeah, that totally makes sense and I understand the pain points of HTTP/1.1 all too well. But in the last week I've lost a final round interview and a second round interview on questions like that. Do you guys have any strategies for dealing/explaining this in an interview? I feel like the answer is probably to just browse a bunch of top X questions for FS web devs and answer all of them. Any other tips? I kind of want to avoid spending hours reading up on arcane crap when I could be learning more interesting stuff but perhaps I just have to do that.

lifg
Dec 4, 2000
<this tag left blank>
Muldoon
Before the interview: you just gotta learn the vocab. REST, MVC, semantic tagging in HTML, whatever. The more senior the role the more youre expected to know this stuff. Knowing the vocab makes communication with other web devs easier.

At the interview: explain that youve have been using these technologies, and while you dont always know the acronym, you do feel comfortable with many of these concepts. Once they explain the concept, give an example something youve done to prove that you know it.

Alternately, dont be afraid to just say Im sorry to say I dont know what that is. Interviewers appreciate it.

downout
Jul 6, 2009

huhu posted:

Part rant part question...

I've been learning/doing web dev for about 3 years now and I'd say I have a pretty solid understanding of lots of disparate concepts. However, I still struggle with random interview questions like what does REST mean or what is the difference between HTTP/1.1 and HTTP/2.0. For REST, I spend most of my time building with Django REST Framework so I'm like I know this I just don't know the vocab for it. For the HTTP thing, I spent less than 5 minutes watching a tutorial and I'm like yeah, that totally makes sense and I understand the pain points of HTTP/1.1 all too well. But in the last week I've lost a final round interview and a second round interview on questions like that. Do you guys have any strategies for dealing/explaining this in an interview? I feel like the answer is probably to just browse a bunch of top X questions for FS web devs and answer all of them. Any other tips? I kind of want to avoid spending hours reading up on arcane crap when I could be learning more interesting stuff but perhaps I just have to do that.

I end up just spending an hour before I start applying for new jobs and just straight memorize a bunch of the most common principles and definitions. I do a quick five minute refresh before any in-person tech interviews. I've generally got the book answer ready, so during the interview I can get to describing implementing or using the concept in various projects.

I'm not a fan of rote learning, but it's worked best for me for the five to ten same questions/concepts of every interview.

downout fucked around with this message at 02:51 on Apr 4, 2018

LaSalsaVerde
Mar 3, 2013

I have a sort of specific question that I guess requires a bit of background.

Basically: I'm nearing graduation, live in my hometown with a decent but not great amount of job opportunities in software, and I'm an okay candidate that lacks much job experience directly working with software. My job experience is more related to accounting with the occasional IT task here or there since I was working at very small businesses. I can code, and will have a basic website done by the end of this Spring. I have familiarity with .NET and SQL Server. I'm under the impression that with persistence I would eventually get hired in a dev position, especially because I'd be happy doing basically anything I can. No qualms about applications, webdev, or database stuff.

The issue is that my fiance and I are looking to move to Denver somewhere around a year from May. Now, this will mean a much higher volume of openings to throw myself at which is great but it leaves me a bit unsure how to approach this next year. I'm working off the idea that it would be best to hold my first serious position for two years and that it will probably take some time for me to get hired as a junior dev/programmer/whatever. I've gotten a handful of rejections and positions closed on me, which is fine, but so far I haven't been looking outside of developer positions. I guess my question then is whether it might be worth looking at something like Helpdesk for a year? There's also a couple of Database Administrator positions that I could feasibly apply to having worked with SQL and Tableau.

But ideally in a year I'd like to have improved my odds of getting a developer position, and working directly in software is surely my best chance to do so. I know a few small businesses I intend on designing databases and associated applications for which will help me build a portfolio, and can work on personal projects in the meantime no matter what happens. I just don't want to pigeonhole myself outside of my field because of this unwieldy time constraint, yet I need a job more than I need a good job at least at this point.

fantastic in plastic
Jun 15, 2007

The Socialist Workers Party's newspaper proved to be a tough sell to downtown businessmen.
If you want to be IT support, sure, go ahead. I don't think it will give you any special advantage toward being a software developer, though. (It might have some incidental benefits, like you're at least around computers all day, so you might learn things. But IT support and development are pretty different career paths.)

Munkeymon
Aug 14, 2003

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



If you're worried about having a short first stint on your resume, "I had to relocate" is a perfectly acceptable reason to hold a job less than however long you're "supposed to" hold a job and is obvious to the person reading your resume as long as they aren't dumb as a brick or you leave off the city/state information for some reason (just don't do that). If they ask why you had to move, say you followed your spouse but don't see any reason they'll have to move again for the foreseeable future.

AAAAA! Real Muenster
Jul 12, 2008

My QB is also named Bort

huhu posted:

Collection of random thoughts...

It sounds like you don't quite know what you want to do. What you need to build an app versus a backend website, are similar but vastly different. It definitely took me time to figure out exactly what I wanted to do. I don't think best jumping all over the place might be the best idea though.

Also, getting stuck on difficult concepts is a common part of programming. I feel like each new problem I encounter is just a difficult as the last, it's more about building a skillset to solve them.

One strategy I have whenever I don't understand something is to break it down. Then look up each piece I don't understand and repeat until I understand it all and build everything back up to understand the original issue.
This is actually a large part of it. I'm not sure because I, in essence, want to do it all. I have been jumping around a bit as I try to figure out what I want to do and I think what it really comes down to is that A.) I'm not sure what I want to do and B.) I need to learn some of the basic fundamentals first.
I have not exactly had 'trouble' with some things, but the two tutorials/classes that I mentioned both have parts where it is assuming you know things, even basic things, where I understand the concept and when I break it down by going over it a few times I figure it out. My problem is that I feel like some of these things are things that I should have already known had I earned a CS degree.

lifg posted:

What concepts are causing you trouble?

Most people learn programming by jumping into a beginners course on something they like. If you enjoy Android development, continue that. If you need SQL for work, learn that too. Then its a matter of steadily broadening your knowledge to cover related areas.

CS50 looks like a broad introduction to the field. I love stuff like that, and it will definitely teach you how to think like a computer scientist. If youre sure this is what you want to do, it sounds like a strong way to start your education. But its definitely not the only way to become a programmer.
As I touched on in my above response, nothing has outright stopped me from progressing, it has been more of a "I can figure out what is going on here, but I wish I could ask a few questions about it to be sure I understand what is going on in the background". Simple things like "why is the file laid out this way" and "Is this layout or format a language specific thing, or is it a general rule?" It seems like based on what I am saying is giving me trouble and what you guys are saying about the CS50 course, I should really start with that.

The Dark Wind posted:

I'm one of those people who keeps recommending CS50 on this thread, and this post is no different.

The first half is devoted to a lot of foundational stuff. You'll look at C, some algorithms (tries, BSTs, stacks, queues, etc.), and do a couple of pretty challenging projects.

The second half is all in Python with Flask + SQLite (and some JavaScript front end stuff) so you'll get some basic experience writing simple SQL queries and hooking that up to a web app. I think they do a fantastic job of pushing you into it without holding your hand, but without leaving you completely floundering either. If your company is doing web work/you're interested in web dev, then I think this is a great way of getting a good taste of both the fundamentals and the more higher level topics. Definitely give it a look if you feel that this would be right for you!
And this essentially confirms what the above two posts were leading me towards.

Thank you guys and gals.



p.s. Shirec I just want to point out that I would have ragequit that place months ago and I think you are incredibly resilient and strong for sticking around as long as you have. Keep fighting.

teen phone cutie
Jun 18, 2012

last year i rewrote something awful from scratch because i hate myself
If automation is what youre looking for, Id recommend finding an REST API that looks cool, downloading Insomniac, and then playing around with making HTTP requests.

After that, Id recommend trying to write simple scripts to get data from an API and put the data elsewhere, like a text file.

Thats pretty much what automation is. Data in, data out.

huhu
Feb 24, 2006

AAAAA! Real Muenster posted:

My problem is that I feel like some of these things are things that I should have already known had I earned a CS degree.
This still bothers the poo poo out of me on a somewhat regular basis and you just kind of have to learn to deal with it. To cope, I've asked other engineers a lot of questions to see just where my experience sits relative to theirs.

AAAAA! Real Muenster posted:

It seems like based on what I am saying is giving me trouble and what you guys are saying about the CS50 course, I should really start with that.
I was about to rag on CS50 since I started with MIT's Intro to Computer Science course as like my first ever attempt to learn anything and was like screw this, this is way too hard and confusing. But that was a lottttt more theoretical than what CS50 looks like. I might even just go back and take that anyways, looks pretty interesting of a course and looks super helpful to set a foundation.

AAAAA! Real Muenster posted:

Simple things like "why is the file laid out this way" and "Is this layout or format a language specific thing, or is it a general rule?"
I'd try not to worry too much about things like this right now. I'd focus on writing bad code that works first . If you continue to learn, you'll eventually start realizing why things are done the way they are and can start to look at the larger picture of things like project architecture. Your first few projects are not going to be anything special and you probably won't want to maintain them for the long term anyways. You'll look back some time from now and be like yeah I'm never touching that again. (which is also an awesome feeling)

Best of luck!

geeves
Sep 16, 2004

downout posted:

I end up just spending an hour before I start applying for new jobs and just straight memorize a bunch of the most common principles and definitions. I do a quick five minute refresh before any in-person tech interviews. I've generally got the book answer ready, so during the interview I can get to describing implementing or using the concept in various projects.

I'm not a fan of rote learning, but it's worked best for me for the five to ten same questions/concepts of every interview.

If only we could attract candidates that actually were prepared even like this.

We had one iffy candidate last week - great personality, but did more PM work and wanted to get back in to programming. It was clear he was rusty - admitted he didn't remember the difference between a List and a Set. So we decided to setup a follow up call a few days later for it and told him explicitly we would be asking him questions on Java fundamentals.

You would think he studied, even a little bit.

Q1: "What's the difference between a List and a Set".
A1: "I'm going to go with absolutely nothing"

:v:

Capri Sun Tzu
Oct 24, 2017

by Reene
In the real world, if you don't know something you spend 15 minutes on google/stack overflow/whatever relevant docs and you educate yourself as needed for what you're trying to accomplish. What is the purpose in asking questions that could be solved this way? It seems like you're just testing if they're good at interviews, not if they're good at the actual job.

teen phone cutie
Jun 18, 2012

last year i rewrote something awful from scratch because i hate myself
Finally getting promoted out of support....into being a server admin and person who trains clients how to use our software

So....im getting farther away from what I actually want to be doing (writing code).

Awesome. As an added bonus, my boss says I suck at customer service, despite rarely ever having problems with clients. Not really sure how Im getting a raise and a promotion after being told Im bad at my job???

Time to :sever: ASAP

teen phone cutie fucked around with this message at 16:48 on Apr 4, 2018

spiritual bypass
Feb 19, 2008

Grimey Drawer
Running training sessions is actually intensive customer service.

Che Delilas
Nov 23, 2009
FREE TIBET WEED

Grump posted:

Not really sure how Im getting a raise and a promotion after being told Im bad at my job???

This is called "being on the management track." Congratulations!

quote:

Time to :sever: ASAP

Actually, this.

Heisenberg1276
Apr 13, 2007

Capri Sun Tzu posted:

In the real world, if you don't know something you spend 15 minutes on google/stack overflow/whatever relevant docs and you educate yourself as needed for what you're trying to accomplish. What is the purpose in asking questions that could be solved this way? It seems like you're just testing if they're good at interviews, not if they're good at the actual job.

The problem is, if you don't know the difference between a List and a Set you're going to write inefficient code without knowing it.

In many cases it won't matter - but if you're working with a reasonable amount of data, the difference between list.contains() and set.contains() is huge - and could easily be the difference between something being doable and not doable. and you wouldn't necessarily know to google it.

JawnV6
Jul 4, 2004

So hot ...

Capri Sun Tzu posted:

In the real world, if you don't know something you spend 15 minutes on google/stack overflow/whatever relevant docs and you educate yourself as needed for what you're trying to accomplish. What is the purpose in asking questions that could be solved this way? It seems like you're just testing if they're good at interviews, not if they're good at the actual job.

They were given 2 days and an explicit description of the problem. They didn't bother to do the 15 minutes at some point in that 2 day period.

Like I get the general "why ask these questions??" but it's just been demonstrated as an effective filter for this person who couldn't do that bare minimum.

Steve French
Sep 8, 2003

Also, if you need to take 15 minutes on Stack Overflow to answer a bunch of basic questions for yourself that a solid developer is going to already know the answer to in basically no time at all, you aren't going to be that effective. Yes, trivia questions are lovely for interviews, but knowing the difference between a list and a set is not one of those.

3D GAY WORLD
May 15, 2007

Steve French posted:

Also, if you need to take 15 minutes on Stack Overflow to answer a bunch of basic questions for yourself that a solid developer is going to already know the answer to in basically no time at all, you aren't going to be that effective. Yes, trivia questions are lovely for interviews, but knowing the difference between a list and a set is not one of those.

I mean, even I can tell you what the difference is between a set and list without googling it, and I'm pretty new to programming. True, it might be easy to google the knowledge, but you're right that if you don't know, a lot of solutions to problems won't occur to you.

The most basic example: but whenever I need to remove duplicate values from a list, I just put them into a set, and then back into a list.

Also, if you take the argument of "you don't need to know it if you can google it and learn it in 15 mins" to it's furthest conclusion, it'd mean that human beings would basically not need to know much of anything, other than how to google things.

Volguus
Mar 3, 2009

3D GAY WORLD posted:

Also, if you take the argument of "you don't need to know it if you can google it and learn it in 15 mins" to it's furthest conclusion, it'd mean that human beings would basically not need to know much of anything, other than how to google things.

To be fair, knowing where to look for answers is a skill in and of itself.

Portland Sucks
Dec 21, 2004
༼ つ ◕_◕ ༽つ

3D GAY WORLD posted:

human beings would basically not need to know much of anything, other than how to google things.

This is pretty much how I feel at work every day

Joda
Apr 24, 2010

When I'm off, I just like to really let go and have fun, y'know?

Fun Shoe
I couldn't tell you the difference between a set and a list until I looked it up during this discussion, simply because I was unfamiliar with the terminology. And that's after 5 years of studying and programming. I still use them correctly in my work as far as I can tell, I was just not familiar with the abstractions, since I've never come across them in my studies.

Portland Sucks
Dec 21, 2004
༼ つ ◕_◕ ༽つ

Joda posted:

I couldn't tell you the difference between a set and a list until I looked it up during this discussion, simply because I was unfamiliar with the terminology. And that's after 5 years of studying and programming. I still use them correctly in my work as far as I can tell, I was just not familiar with the abstractions, since I've never come across them in my studies.

What do your studies consist of? This is not normal for someone who has studied computer science for 5 years.

Joda
Apr 24, 2010

When I'm off, I just like to really let go and have fun, y'know?

Fun Shoe

Portland Sucks posted:

What do your studies consist of? This is not normal for someone who has studied computer science for 5 years.

Software engineering. Focused mostly on low level, computer architecture and rendering, though. I can think of three courses that could potentially have covered it, which were introductory programming (which, to be fair, might have covered it and I just forgot,) introduction to software engineering which focused more on the formal logic of a computer (e.g. making a CPU from NAND gates) and general SE principles and then CS modeling which seemed to focus more on automatons, grammars, etc.

Maye it was covered in one of the few algorithms and datastructures 1/2 lectures I wasn't there for? It certainly wasn't an abstraction that was omnipresent in any of these courses.

Fellatio del Toro
Mar 21, 2009

I can't imagine being unable to answer an interview question and not immediately running home and looking it up

3D GAY WORLD
May 15, 2007

Volguus posted:

To be fair, knowing where to look for answers is a skill in and of itself.

Good point. I can't begin to count the number of times that someone I knew tried to find an answer to a question, only to spend 10 minutes searching and then come up with nothing (or worse yet, not even bothering to google it, and instead ask random people if they know). Then they mention their question to me, I whip out my phone and have the answer in under a minute. It's not like I'm some google genius either.

People seem to be extremely bad at understanding how to use key words and omitting the useless bits, let alone actually searching for exact matches and other more advanced features.

The Fool
Oct 16, 2003


3D GAY WORLD posted:

Good point. I can't begin to count the number of times that someone I knew tried to find an answer to a question, only to spend 10 minutes searching and then come up with nothing (or worse yet, not even bothering to google it, and instead ask random people if they know). Then they mention their question to me, I whip out my phone and have the answer in under a minute.

People seem to be extremely bad at understanding how to use key words and omitting the useless bits, let alone actually searching for exact matches and other more advanced features.

prefixing a keyword with "-" is black magic

Shirec
Jul 29, 2009

How to cock it up, Fig. I

Please forgive me, a long one happened today and I need to get the poison out (tl;dr my boss sucks and is a horrible rear end in a top hat)

Another week, another time for my boss to berate me in front of my coworkers. Was in final testing phase with the current iteration of my code (which, if y'all recall, was specifically designed to operate as it does from my boss, this is the 3rd major re-write at this point), and ran into issues with knowing when all the jobs in our messages queues finished.*

I had discussed this in our morning meeting, and boss told me that I needed to be better about asking my coworkers for help (previously I had been told that their time was more valuable than mine and I needed to not bother them). So after testing that everything is working but this one bug, I go ask for my coworkers help. We start discussing it, for about 5 minutes, before my boss swoops in from his office.

He proceeds to question me about the entire design of the project, while constantly interrupting me trying to explain, rolling his eyes/throwing up his hands if I started getting nervous/wasn't explaining well enough/didn't use a naming structure he liked. Sometimes also he doesn't want an explanation, and if I start explaining, he'll interrupt me and loudly say "YES OR NO?" until I say just one of those words. According to him, every decision I made, from database models, to the structure of how I was setting up the data processing, to setting up api calls, was wrong. He kept stopping to ask my co-workers opinions of the code, and if they could debug it (I've been working separately from them for weeks), and how much this would gently caress us for future implementations.

He's the one who looked at how I was designing it for this revamp and signed off. I was able to point that out exactly once, because he asked why I wasn't saving more things to the database and instead was passing it in around in Redis. I answered that I was told not to. This goes on for about an hour and a half. I managed not to cry although I got close a few times. At the end, he said that I needed to take my co-workers through the code and decide what our options were. That he was empowering us to make our own choices. Then he left for lunch.

So we did that, after I took a quick restroom break to finish out my panic attack and clean up a bit from tearing up. We were pretty close to working out a good solution, and my coworkers said they didn't think my code was bad.

Boss gets back from lunch. We're still discussing but he goes back into his office so I think it'll all be fine. No, no it's not fine. This starts lecture two, which ends up being another hour and a half. He basically goes over all the bits from the first lecture, except harsher and about how I should have used all these tools that he told the guys about and not me, and that I needed to be constantly taking steps back and having everyone agree on design. He then writes out his plan for what he wants the new implementation to look like, but we don't have enough time, so we just need to get my garbage to work, and then support it forever. He tasks one co-worker with helping me, and we are set free.

I am left to work in peace for the rest of the day.


*If you're curious, it's reading in a file of various lengths, creating database entries based on certain criteria, and the data may or may not repeat through the file. The objective was to process all the data, send it in chunks over to our main platform, and go relatively fast. Challenge was that certain parts had to be sent before others, and there was no good way to know what the final count would be.

Adbot
ADBOT LOVES YOU

Gildiss
Aug 24, 2010

Grimey Drawer
Please report him for that health privacy violation asap so we can get a live feed of how his life gets trashed.
Thanks in advance.

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