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
Skandranon
Sep 6, 2008
fucking stupid, dont listen to me

huhu posted:

Edit: Maybe it's better to throw all my solutions on Github and link to it so it's not so easy to find...since they're unpolished kind of stuff. Or maybe just don't show them at all?

The problem is there is nothing to prove you didn't copy the answers from some other site... aside from the errors. Either way, at best, they provide no benefit, and at worst, could hurt your chances to even get an interview. Keep doing the exercises, but you should probably keep them to yourself. You need more of a final product type of thing to impress employers, and it should be really polished before you put it out there. Something with errors and a bunch of TODOs will hurt more than help.

Also, if you want to get into more web design things, start looking into things like Typescript, AngularJS, React, LESS, etc. Having even the basics in some of those will put you ahead of a lot of candidates. I got my current job entirely by having experience with AngularJS.

Skandranon fucked around with this message at 03:04 on May 31, 2015

Adbot
ADBOT LOVES YOU

huhu
Feb 24, 2006

Skandranon posted:

The problem is there is nothing to prove you didn't copy the answers from some other site
:sigh: Do people do that? ... Obviously the answer is yes, but ugh.

quote:

Either way, at best, they provide no benefit, and at worst, could hurt your chances to even get an interview.
Any way they could help? Maybe if I create some fancy answers to Project Euler problems? Or does that still go back to nothing to prove I didn't copy and paste the answers? I really wanted to focus on getting all the way through a language and learning its in and outs and don't exactly feel like focusing on creating projects for now, but if I'm not creating projects then I'll have nothing to show.

quote:

Also, if you want to get into more web design things, start looking into things like Typescript, AngularJS, React, LESS, etc. Having even the basics in some of those will put you ahead of a lot of candidates. I got my current job entirely by having experience with AngularJS.
Could basic be considered using jQuery to make an accordion from scratch instead of copying a template off of Bootstrap's documentation? If so I could easily learn the basics of a few of those. I was eyeing AngularJS (the one company I passed the first round interview with said they work with that) and LESS/SASS.

Skandranon
Sep 6, 2008
fucking stupid, dont listen to me

huhu posted:

Any way they could help? Maybe if I create some fancy answers to Project Euler problems? Or does that still go back to nothing to prove I didn't copy and paste the answers? I really wanted to focus on getting all the way through a language and learning its in and outs and don't exactly feel like focusing on creating projects for now, but if I'm not creating projects then I'll have nothing to show.

At the stage where they are looking at your website, it's all about getting an interview. Deciding who to interview is not a comprehensive evaluation, it's a filtering process. You look for reasons not to interview people, so you can focus on just a few. Since the answers can be copied, and they aren't exactly complex problems, at best it's a "he knows some JS". But if there are bugs or problems with the code you posted, it's an easy disqualification, and you don't even get the benefit of shaky nerves to blame.

Like with the FizzBuzz problem, you

a) display the number alongside the Fizz/Buzz, instead of doing a replacement
b) don't display the number if it's not Fizz/Buzz/Fizzbuzz, which you are (IE, output for 3&5 should look like 1,2,Fizz,4,Buzz,Fizz,7, etc)

This will make someone think you can't read directions well or understand requirements, and unless there is something else extremely compelling in your resume, instant disqualification. You don't get points for trying.

That's why I suggested getting some more esoteric stuff on your resume. If a company is using Typescipt & AngularJS, and you have that, even just the basics, that possibly saves them a few months warming up a developer who has never heard of them. This can push you into the "worth a look" category, which is all you need. Once you get an interview, your resume barely matters and how you do there is all that really counts. Also, you DO get points for trying in the interview.

huhu posted:

Could basic be considered using jQuery to make an accordion from scratch instead of copying a template off of Bootstrap's documentation?

Depends, but not really. Re-inventing the wheel is not a good practice in actual development, so if you try, and do a bad job, you lose points. You have to really succeed there for it to be to your benefit. When you are actually working as a developer, especially in the web, you'll be using a lot of libraries, not writing things from scratch.

If you want something that will show you have something of value, learn AngularJS & React, and write your basic resume-ish site (without examples) in both. Have the entire code available on github, for both sites. Then they can see that you built a basic, top to bottom site, of your own (has your picture and poo poo in it) in two modern, in two sought after technologies. Don't try anything fancy, just make sure they work, and follow good practices for what you are making.

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. —Bertrand Russell

huhu posted:

I really wanted to focus on getting all the way through a language and learning its in and outs and don't exactly feel like focusing on creating projects for now

I completely understand this impulse, but as far as I can tell it doesn't work. Or, at least, it's not the most optimal path towards creating the most optimal programmer that can be created out of an individual for a very large subset of those who have the impulse to learn this way.

Not that I'm the best judge, but this is my impression from reading about the subject for years.

lunar detritus
May 6, 2009


Thermopyle posted:

I completely understand this impulse, but as far as I can tell it doesn't work. Or, at least, it's not the most optimal path towards creating the most optimal programmer that can be created out of an individual for a very large subset of those who have the impulse to learn this way.

Not that I'm the best judge, but this is my impression from reading about the subject for years.

I agree. Besides, most of the hard work programming is about how to implement things more than the specifics of any particular language.

ROFLburger
Jan 12, 2006

Sticking to one language for a bit while learning babbys first programming lessons seems like a good idea to me. What alternative would you guys suggest? learning a couple dissimilar languages like JS and C# at the simultaneously maybe?

down with slavery
Dec 23, 2013
STOP QUOTING MY POSTS SO PEOPLE THAT AREN'T IDIOTS DON'T HAVE TO READ MY FUCKING TERRIBLE OPINIONS THANKS

ROFLburger posted:

Sticking to one language for a bit while learning babbys first programming lessons seems like a good idea to me. What alternative would you guys suggest? learning a couple dissimilar languages like JS and C# at the simultaneously maybe?

I'd recommend doing a "full stack" web development course. HTML, CSS, JS, SQL, PHP/Ruby/Python (most likely backends) are all radically different languages (HTML and CSS aren't really 'programming' languages) and familiarizing yourself with the entire stack an incredibly marketable skill

huhu
Feb 24, 2006

quote:

At the stage where they are looking at your website, it's all about getting an interview. Deciding who to interview is not a comprehensive evaluation, it's a filtering process. You look for reasons not to interview people, so you can focus on just a few. Since the answers can be copied, and they aren't exactly complex problems, at best it's a "he knows some JS". But if there are bugs or problems with the code you posted, it's an easy disqualification, and you don't even get the benefit of shaky nerves to blame.
Great point. Wish I had this suggestion before I started creating content. ...at least I learned about making WordPress post templates, using a syntax highlighter plugin, etc.

quote:

Depends, but not really. Re-inventing the wheel is not a good practice in actual development, so if you try, and do a bad job, you lose points. You have to really succeed there for it to be to your benefit. When you are actually working as a developer, especially in the web, you'll be using a lot of libraries, not writing things from scratch.
I guess I meant to say, is that building an accordion from scratch without looking at an example a good level of "the basics" for a library? I use the accordion example because I made it from scratch purely because I wanted to see if I could do it.

quote:

If you want something that will show you have something of value, learn AngularJS & React, and write your basic resume-ish site (without examples) in both. Have the entire code available on github, for both sites. Then they can see that you built a basic, top to bottom site, of your own (has your picture and poo poo in it) in two modern, in two sought after technologies. Don't try anything fancy, just make sure they work, and follow good practices for what you are making.
This will probably be my next project. Hopefully I'll think of something besides recreating my portfolio again.

quote:

I completely understand this impulse, but as far as I can tell it doesn't work. Or, at least, it's not the most optimal path towards creating the most optimal programmer that can be created out of an individual for a very large subset of those who have the impulse to learn this way.
I feel like the number one suggestion I've seen while researching is pick a language, doesn't matter which, learn it, then move on from there.

Alrighty. Thanks for all your input thus far. Pretty burnt out from website updates, reading the JS textbook, and doing practice problems. I'll work on reducing the content of my site tomorrow.

Skandranon
Sep 6, 2008
fucking stupid, dont listen to me

huhu posted:

I feel like the number one suggestion I've seen while researching is pick a language, doesn't matter which, learn it, then move on from there.

There's a lot more to software development than the language you are using. The goal is to understand the underlying software engineering principles, and then be able to pick up and apply them to any given language. Once you understand the underlying principles, the language is just a syntax lookup on Google.

ROFLburger
Jan 12, 2006

I didn't see anything about this in the OP, What kind of questions should one expect from a phone screen for a junior software developer role? Do they often involve the technical "do a fibanocci thing" questions?

UnfurledSails
Sep 1, 2011

ROFLburger posted:

Sticking to one language for a bit while learning babbys first programming lessons seems like a good idea to me. What alternative would you guys suggest? learning a couple dissimilar languages like JS and C# at the simultaneously maybe?


People usually recommend Phyton as a beginner language, and I've seen some beginner books with Python, but I know zero Python and I think I turned out okay. It's probably awesome though.

I started out with Java, and I think that was a good thing since it took me a while to wrap my head around concepts like objects and inheritance and polymorphism and such, which helped me learn general OOP concepts before moving onto other complex stuff. I think my head would have exploded had I started with C or C++ and learned about pointers and memory allocation.

I think Stanford's CS106A is available for free on iTunes. It's a very good way to start out. That class pretty much tricked me into becoming a Computer Science major. I was like "Ooh I can move the robot and pick up the coins and make a Hangman game!" and now I'm writing a code generator for an imaginary programming language. I don't know what happened.

I never really sat down and "learned" a language in college. I was given an assignment, a deadline of 9-10 days, and a language, and I researched and learned what I needed to do to complete the assignment. As I did more assignments I got the hang of practices that made my life easier, and kind of naturally memorized the stuff I used the most while forgetting the more esoteric stuff I used once. It was like nerdy natural selection. I still look up stuff, but I don't have to look up how to write a fscanf or a switch statement in StackOverflow anymore.

I mean, I knew what a virtual function was, but never really understood why it was necessary until I had to use it in a project.

pr0zac
Jan 18, 2004

~*lukecagefan69*~


Pillbug

ROFLburger posted:

I didn't see anything about this in the OP, What kind of questions should one expect from a phone screen for a junior software developer role? Do they often involve the technical "do a fibanocci thing" questions?

Depends on the company but yeah, its very often the usual algorithmic / data structure type stuff.

Series DD Funding
Nov 25, 2014

by exmarx
Mine were similar to the in-person questions except we did it over a webdoc instead of a whiteboard.

Skandranon
Sep 6, 2008
fucking stupid, dont listen to me

ROFLburger posted:

I didn't see anything about this in the OP, What kind of questions should one expect from a phone screen for a junior software developer role? Do they often involve the technical "do a fibanocci thing" questions?

Sometimes they just want to get a quick feel for someone before an interview. If you can provide intelligible answers to some simple technical questions, like "what is recursion?", then they move to either an in person interview, or maybe another phone interview with multiple people & some technical exercises.

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. —Bertrand Russell

huhu posted:

I feel like the number one suggestion I've seen while researching is pick a language, doesn't matter which, learn it, then move on from there.

I'm not sure how exactly this is a response to what I said. I'm probably just not understanding your point.

Picking a project and doing it doesn't require you to learn more than one language. Doing projects with a language is a great (best?) way to learn.

ReverendCode
Nov 30, 2008

Thermopyle posted:

I'm not sure how exactly this is a response to what I said. I'm probably just not understanding your point.

Picking a project and doing it doesn't require you to learn more than one language. Doing projects with a language is a great (best?) way to learn.

Expanding on this: Sitting down to "learn a language" in programming is startlingly similar to wanting to be a writer, so you sit down to memorize the dictionary. You might learn some things, but the majority of the information is going to have no context.
Learning a language by finding a problem you want to solve (even if that problem is "I want hello world printed on my screen" ) is a much better way to learn context, and having a small project that works after a few hours is much more encouraging than spending 3 months memorizing syntax, and still not knowing what to do with it.

ElGroucho
Nov 1, 2005

We already - What about sticking our middle fingers up... That was insane
Fun Shoe

Skandranon posted:

They don't have much in common structurally. Java is purely OO based, C++ has objects bolted on, and Python only kinda. Java is compiled to bytecode to run on a VM, C++ is compiled to the specific OS/CPU architecture, and I don't know what Python does.

Maybe it's just a scattershot and hoping to pick up someone that has at least one of those three.

Just want to chime in and say gently caress python's self._boogers __init__ __str__ nonsense.

It was a nice program to the basics of computer functions, but once it gets in to OOP, it falls apart. It made so much more sense within 4 chapters of Beginner's Java.

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. —Bertrand Russell

ElGroucho posted:

Just want to chime in and say gently caress python's self._boogers __init__ __str__ nonsense.

It was a nice program to the basics of computer functions, but once it gets in to OOP, it falls apart. It made so much more sense within 4 chapters of Beginner's Java.

Conversely, it took Python for me to finally understand OO after struggling with Java for a year.

an skeleton
Apr 23, 2012

scowls @ u
I've never done OO programming in Python, just scripting. What's so bad about it?

ullerrm
Dec 31, 2012

Oh, the network slogan is true -- "watch FOX and be damned for all eternity!"

an skeleton posted:

I've never done OO programming in Python, just scripting. What's so bad about it?

It's actually not that bad, although it's challenging to make it perform well. (Quite a few other languages, such as Lua, use similar systems.)

In Python's data model, an object in Python is basically a thinly disguised dict; "object.member" is syntactical sugar for "object->__dict__["member"]". You have a wide variety of methods with sentinel names that are called to implement rudimentary functionality:

* When you create an object it calls obj.__init__
* When you call str(object) it calls obj.__str__
* When you call "%20s" % object, it calls obj.__format__("20s")
* and so on.

There's some really powerful things you can do with this model, in terms of readability and fluid code. For example, imagine you have a wrapper class around a database row; the object can inject the column names into its method table at runtime, so you can call row.SomeGodawfulSqlColumnName. (In that sense, Python doesn't have a clear division of code and data; a program just represents the initial data that's loaded into the environment. You can even use this to emulate some metaprogramming features that Python lacks, by using exec() and string formatting to generate code at runtime.)

On the other hand, this means that most method calls are slow as molasses, compared to a v-table or even a ObjC message. It also means that it's very difficult to do static analysis, and it's not always intuitive/predictable what's actually being done when you use a method or attribute on an object.

The Dreamer
Oct 15, 2013

Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn

huhu posted:

Would anyone care to give my website a 2 minute view(as if you were hiring) or a longer view to see if there are any issues? http://www.travisbumgarner.com/

Also, my resume, thoughts?
https://drive.google.com/file/d/0B01niieJYRjKN0h3XzRXQnIzZDA/view?usp=sharing
There might be some formatting issues, mainly the content at this point, I just created it from scratch and grabbed stuff from my old resume.

This might just be me being nit picky but why isn't the page content centered at desktop screen sizes? It might just be me but I hate seeing websites where the page content isn't centered especially when the site is responsive like yours is.

huhu
Feb 24, 2006

The Dreamer posted:

This might just be me being nit picky but why isn't the page content centered at desktop screen sizes? It might just be me but I hate seeing websites where the page content isn't centered especially when the site is responsive like yours is.
Care to share a screen shot? Not sure what you're talking about. Everything is centered on my screen.

The Dreamer
Oct 15, 2013

Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn

huhu posted:

Care to share a screen shot? Not sure what you're talking about. Everything is centered on my screen.

I'll have to get back on my other computer but if your screen is wider than 1600px the content just sits over to the left and leaves a gray void on the right. If your screen is 1600px or less you can go into Firefox and hit Ctrl+Shift+m and change screen size dropdown to larger than 1600 and scroll over to see what I'm talking about.

The Dreamer fucked around with this message at 00:54 on Jun 1, 2015

The March Hare
Oct 15, 2006

Je rêve d'un
Wayne's World 3
Buglord

Spatulater bro!
Aug 19, 2003

Punch! Punch! Punch!

huhu posted:

Care to share a screen shot? Not sure what you're talking about. Everything is centered on my screen.

You have max-width set to 1600px on .site, by the way.

ROFLburger
Jan 12, 2006

the site sitting to the left feels really odd. you could get rid of the max-width, or apply margin-left:auto and margin-right:auto to #page

gonadic io
Feb 16, 2011

>>=
What level of experience/competency should I have with a language before I put it on my CV?

I mean I'd ideally like a section like
Fluent: Haskell, Java, F#, Python, VB.Net
Have used a bit, and could pick up: C, C#, Fortran, Rust

There's also Fortran which I'm fluent in but there's absolutely no way that I'd want a job in. Should that go on too?

Skandranon
Sep 6, 2008
fucking stupid, dont listen to me
Don't put anything you aren't ready to whiteboard in.

If you've used C# in a past project, but are rusty, add a section to each previous job describing the technologies used in each position. This will signal to them that yes, you have used C#, but that was 3 years ago and such. For current skills, make sure it's current.

As for the Fortran... leave it off it you don't want anyone asking you to do it.

Destroyenator
Dec 27, 2004

Don't ask me lady, I live in beer
In the Skills bit on my CV I did recently I put "Core" and "Additional" sections. Core for stuff I do daily or am happy to teach people about, really anything I'd expect to be able to pick up and be fully productive from the get go. Additional for things I've occasionally used professionally or done quite a bit in my own time but am not confident selling myself as a pro.

This was backed up by what Skandranon suggested, having specific technologies listed against previous positions/projects in the experience bit.

Recent set of interviews I didn't really get asked about it and got an offer :shrug:

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. —Bertrand Russell

So, what kind of questions can you ask or actions you can take with regard to a potential employer to make sure you're not going to end up working for one of these places that gets featured in the Coding Horrors thread where they've got lovely practices and terrible code bases?

Munkeymon
Aug 14, 2003

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



Ask detailed questions about their practices and make sure the answers are right.

If you find out they lied, spend all your work time applying for other jobs.

Skandranon
Sep 6, 2008
fucking stupid, dont listen to me
Joel Spolsky has a really old article about questions to ask interviewers up at http://www.joelonsoftware.com/articles/fog0000000043.html

Some of them aren't as important, depends. For me, I try to imagine what conditions I actually want to work in, and try as much as possible to ask questions that will confirm/deny what I'm looking for. If foosball matters a lot to you, ask about it. If unit testing is your thing, ask if they do it.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

Skandranon posted:

Joel Spolsky has a really old article about questions to ask interviewers up at http://www.joelonsoftware.com/articles/fog0000000043.html

Some of them aren't as important, depends. For me, I try to imagine what conditions I actually want to work in, and try as much as possible to ask questions that will confirm/deny what I'm looking for. If foosball matters a lot to you, ask about it. If unit testing is your thing, ask if they do it.

I've found that you shouldn't ask things directly, because they'll give answers you want to hear.

"Do you unit test?" -> "Yes, of course!" = "We'd really like to do it someday" or "We have awful integration tests, half of which fail, because no one understands how to unit test properly but we think we do"
"Are you Agile?" -> "Yes, of course!" = "We change what you're working on every three days based on the whims of management"
"Do you do continuous integration" -> "Yes, of course!" = "We have some insane hacked up series of scripts that someone wrote 10 years ago, then that person quit, and no one knows what the scripts do or how they work"

It's better to ask questions that will lead them into revealing this information:

"How do you ensure code quality?" If they don't talk about unit tests, they don't do it.
"How do you manage work estimates?" If they start talking about arbitrary milestones determined by a non-technical "project manager", they're waterfall, even if they claim otherwise.
"How do you do software releases?" They'll talk your ear off about the toolchain they use to do continuous integration/delivery here... unless they don't.
etc

In case it isn't obvious, I've been burnt by this before.

The Leck
Feb 27, 2001

Thermopyle posted:

So, what kind of questions can you ask or actions you can take with regard to a potential employer to make sure you're not going to end up working for one of these places that gets featured in the Coding Horrors thread where they've got lovely practices and terrible code bases?
I picked out a number of choices from these lists in my last interview (particularly the first link) - both technical and cultural. No one balked at answering, and a few started some interesting explanations about how they emphasized certain aspects of the job (like their QA process). I was able to get a few answered in advance by talking to a person who already worked there, but there's a lot of time to talk in an all day software interview.

http://jvns.ca/blog/2013/12/30/questions-im-asking-in-interviews/
http://blog.pamelafox.org/2013/07/what-to-look-for-in-software.html

UnfurledSails
Sep 1, 2011

You guys have excellent question suggestions, but I'm not sure if I can use most of them in my new grad/entry level interviews. I don't have any experiences with lovely practices myself, so it's kind of tough for me to say "Hmm I will have a terrible time working for these people." I wouldn't probably recognize if their practices are crap in the first place.

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. —Bertrand Russell

UnfurledSails posted:

You guys have excellent question suggestions, but I'm not sure if I can use most of them in my new grad/entry level interviews. I don't have any experiences with lovely practices myself, so it's kind of tough for me to say "Hmm I will have a terrible time working for these people." I wouldn't probably recognize if their practices are crap in the first place.

Start following the Coding Horrors thread.

kloa
Feb 14, 2007


UnfurledSails posted:

You guys have excellent question suggestions, but I'm not sure if I can use most of them in my new grad/entry level interviews. I don't have any experiences with lovely practices myself, so it's kind of tough for me to say "Hmm I will have a terrible time working for these people." I wouldn't probably recognize if their practices are crap in the first place.

It's fun to learn as you go - at least for me. I think the hard-hitting questions like above are for after you have a solid 5 years of programming and want a solid team to work with. Or maybe I'm the odd one :shrug:

Skandranon
Sep 6, 2008
fucking stupid, dont listen to me

kloa posted:

It's fun to learn as you go - at least for me. I think the hard-hitting questions like above are for after you have a solid 5 years of programming and want a solid team to work with. Or maybe I'm the odd one :shrug:

You really don't want to work at a place with bad practices, you will pick up bad habits and will have to spend even more time unlearning them. While it may be harder to figure out if they are flat out lying to you, as Ithaqua warns of, you really want to try and start off learning from actually competent people instead of morons.

kloa
Feb 14, 2007


Skandranon posted:

You really don't want to work at a place with bad practices, you will pick up bad habits and will have to spend even more time unlearning them. While it may be harder to figure out if they are flat out lying to you, as Ithaqua warns of, you really want to try and start off learning from actually competent people instead of morons.

Right. Guess I meant more in the sense that you add things as you go. I've worked at places that don't have any of the generally accepted things people here talk about : source control, unit tests, etc. not that I do it wrong per se, it just doesn't exist at some workplaces.

I'm slowly adding better practices to my current job:

Make a small program. It's expending, now make it run better. Now source control. Now unit tests. And so on.

Adbot
ADBOT LOVES YOU

Skandranon
Sep 6, 2008
fucking stupid, dont listen to me

kloa posted:

Right. Guess I meant more in the sense that you add things as you go. I've worked at places that don't have any of the generally accepted things people here talk about : source control, unit tests, etc. not that I do it wrong per se, it just doesn't exist at some workplaces.

I'm slowly adding better practices to my current job:

Make a small program. It's expending, now make it run better. Now source control. Now unit tests. And so on.

That's fine, I wasn't trying to pick on you. However, being the one to implement these sorts of things can be extremely stressful, depending upon the culture. If you are just starting out, having someone show you the proper ways of using source control, of decoupled code, etc, sets you up so much better long term in your career. I wish I didn't have to muddle through a lot of these things the way I did.

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