• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Programming |OT| C is better than C++! No, C++ is better than C

Onemic

Member
Decided to go with Unreal Engine 4. It using C++ solely is great for me, since I can focus on applying some of the things I've learned to a small game project. I'll ask the same questions here as I did at the Unreal forums:


- What would be the best way to start off making a small personal game in UE4 as a project for the summer? What should I be aiming for, especially for someone that is still learning C++?
- Should I focus on making a simple 2D game rather than a 3D one to get started? Seeing the Flappy Chicken showcase intrigued me because before I thought the UE engine was pretty much pigeonholed into being for FPS games
- What should my expectations be going into UE4 and a game engine for the first time?(UE4 will be my first foray into making a game)
- What can I expect to gain from making things in UE4, in terms of making games and in terms of further fleshing out my knowledge of C++?
- Would you recommend I start off 100% using C++ for scripting or using the visual blueprints?
- Since I'm not a designer, how would I be able to add objects and designs to my game?
- For someone at my level is retaining the UE4 subscription worth it or is it better to cancel and resub when I learn enough about UE4 and C++?
- Lastly is there anything to be gained in terms of knowledge/insight through me looking at the source code for UE4? I opened it in VS2013, but noticed that most of the files were C# files and not cpp's.
 

iapetus

Scary Euro Man
Feel almost the exact same way. And we just had an imposter syndrome thread that also talked about this.

Not sure if its something generational, if it's inherent to the field, if we actually suck, or if it's just that job expectations are so out of sync with either what they should be or what students are leaving colleges with that everyone feels it.

Definitely one of the worst feelings I've ever had to deal with. Completely robs you of confidence and self worth in its worst moments.

Tell me about it. I remember one of the first big training courses I did - got a message to go and see one of the managers of the company I was training for. I was absolutely convinced that they were going to tell me that two of the people on the course (who very obviously knew a lot more about the subject matter than I did and kept asking difficult questions that I had no answers for) had complained about the fact that the course instructor was a clueless idiot who was only qualified to teach the course by virtue of studying each chapter of the course while the students did the exercises for the previous section and smelt of piss, fear and incompetence.

Actually it was a question about the overhead projector or something along those lines, and the people who clearly knew more than me gave me 5/5 for subject knowledge on the feedback form at the end of the course.

There was no official feedback on 'did your instructor smell of piss, fear and incompetence', but nobody mentioned it in the 'other comments' section.

That said, it's not quite the same thing as true imposter syndrome I guess, because I was learning the course material in the exercises for the previous chapter. But hey, I'm a quick learner. :D
 
Starting a summer internship at a major tech company next monday and I feel inadequate. I'm finishing up year two in university (out of 5) of an IT programme and I'm doing well in school, I'm definitely in the upper 25% or something of the class, haven't failed a single exam yet, and still I feel like I'm a bad programmer. I have exactly zero personal projects going on except for a Tetris clone that I lost interest in. They'll pair interns up two and two so at least I'll have that to fall back on, but I can't help but feel I'm not qualified for this. Doesn't help that while I applied and they accepted me, my uncle put in a good word for me to the higher-ups on the basis of being family.

Has anyone else felt like this? I know I should make myself do personal projects outside of school, ones that I have use for so that I get motivated, but for whatever reason I'm just not doing that.

I studied programming at school, but now I can say for certain that I didn't understand programming before working a year or so on a real project for real client. Just keep up with it and it will click sooner than later.

ps. all programmers are bad.
 
Feel almost the exact same way. And we just had an imposter syndrome thread that also talked about this.

Not sure if its something generational, if it's inherent to the field, if we actually suck, or if it's just that job expectations are so out of sync with either what they should be or what students are leaving colleges with that everyone feels it.

Definitely one of the worst feelings I've ever had to deal with. Completely robs you of confidence and self worth in its worst moments.

I honestly think this is one of the top things keeping me from applying for new jobs. Where I work now I am the "star coder". I did most of the architecture for the system, planned and implemented most of the features, and choose what technologies we should use. I feel really confident about the product we built and it works well, but when it comes down to it because of the strange path my career took I have no clue how well my skills will transfer to new projects.

The crazy thing about it is that I basically went from Junior Developer to Senior Developer in two years, and as Senior Developer I became de facto System Architect almost immediately because I guess the more senior guy that was left at the company above me didn't feel confident doing it (the others had left the company). We're a really small business with only three full time developers. Because of that I basically did all of this while being self-taught at everything I was doing with basically no guidance from people more experienced. It's a tough spot to be in because you never know if you're doing things the most efficient or best way, you can only try to learn as you go along, but you can't take forever because you still have deadlines.

So, really, most of what I know could be useless in other contexts because it's not the ideal implementation of things. I am sure I could pick up all of those skills extremely rapidly, but when you are getting hired for a position and they ask you questions and you can't answer in the exact way they expect I imagine it won't go over super well. The last thing I want to do is take a pay cut for a new position, or take a new position and be given tasks and have no clue how to do them. I know the imposter syndrome at my next job is going to be unreal.
 

Two Words

Member
*EDIT* Oh man, I'm an idiot. I saved the test.txt file as text.txt.txt. There's two hours wasted on nothing!

I'm using Visual Studio Professional 2013 on this program.

I'm getting back into learning how to program after a long hiatus and I'm starting from scratch. I'm having an issue with having a program read from a simple .txt file to receive input. It takes some simple data like strings and double variables to record a student's name and test scores, then outputs the input and the average score into a .out file. Here's the source code.

Code:
// Student Grade.cpp : Defines the entry point for the console application.
//This program will read data from one file of a student's grade, find the student's average score, and then save the results in a different file.

#include "stdafx.h"
#include <string>
#include <fstream>
#include <iostream>
#include <iomanip>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	ifstream inFile;		//Declaring my input and output file stream variables
	ofstream outFile;

	double test1, test2, test3, test4, test5; //Test score variables
	double average;			//Average of test scores
	string firstName;		 //For the student's first and last name
	string lastName;

	inFile.open("test.txt");		 //Opening the input and output files. 
	outFile.open("testavg.out");

	outFile << fixed << showpoint;		 //manipulating the layout of the output.
	outFile << setprecision(2);

	cout << "Processing data..." << endl;		//Just something to look at on the prompt

	inFile >> firstName >> lastName;		//Reading the student's name.
	outFile << "The program is outputting correctly." << endl;		//Testing if the output is working.
	outFile << "Student Name: " << firstName << " " << lastName << endl;		//Outputting the received name.

	inFile >> test1 >> test2 >> test3 >> test4 >> test5;		 //Reading the student's test scores.
	outFile << "Test Scores: " << setw(6) << test1 << setw(6) << test2 << setw(6) << test3		//Outputting the student's test scores.
		<< setw(6) << test4 << setw(6) << test5 << endl;

	average = (test1 + test2 + test3 + test4 + test5) / 5.0;		//Averaging the test scores.

	outFile << "Average Test Score: " << setw(6) << average << endl;		//Outputting the average test score grade.

	if (inFile.fail())
	{
		cout << "Error Opening File" << endl;		//testing if the ifstream is failing. It is at the moment.
		
	}

	inFile.close();			//Closing files.
	outFile.close();

	system("pause");

	return 0;
}

This is what is showing in the console prompt

Processing data...
Error Opening File
Press any key to continue . . .

This is what the input file, test.txt, has within it.

John Smith 92.5 84.3 77.2 95.9 98.3

This is what the output file, testavg.out, has within it after running.

The program is outputting correctly.
Student Name:
Test Scores: -92559631349317830000000000000000000000000000000000000000000000.00-92559631349317830000000000000000000000000000000000000000000000.00-92559631349317830000000000000000000000000000000000000000000000.00-92559631349317830000000000000000000000000000000000000000000000.00-92559631349317830000000000000000000000000000000000000000000000.00
Average Test Score: -92559631349317830000000000000000000000000000000000000000000000.00
Clearly I have an error with reading the input file. I can' figure out what it is. I've tried putting the test.txt file in just about every folder that it could be searching it. I have tried putting the exact directory of the file, and I made sure to use "\\" for the backslashes of the directory. Am I missing something really stupid here?


**EDIT ** I've also put a copy of the test.txt file directly at C:\test.txt and changed the file opening statment to:

"inFile.open(C:\\test.txt");

Still nothing.
 

BreakyBoy

o_O @_@ O_o
Has anyone else felt like this?

Feel almost the exact same way. And we just had an imposter syndrome thread that also talked about this.

I feel the same exact way.

I just graduated and I don't know ANYTHING :(

Yeah pretty much every day I go home feeling like there is no reason I should have gotten the job. :p But I have learned a lot. It just sucks to be thrown something and have no idea to do it. It sucks even more because its so hard for me to get motivated when it seems like it's just way too hard to learn. Once I start getting it though, I really get motivated.

Tell me about it.

I honestly think this is one of the top things keeping me from applying for new jobs. I know the imposter syndrome at my next job is going to be unreal.

I never finished my Bachelors and I jumped straight into a "Level 2 Software Developer" position with no prior professional experience. It was a transfer within my current workplace and they were taking a chance on me based on how well I tested.

My first job was revamping a project that was perfectly fine the way it was and I convinced them of that. To the point that the project was scrapped and they no longer had a need for me, a LAMP guy with both PHP and Perl skills.

With nothing to do for months, I was living the Imposter Syndrome for all that time. All I knew was that there were a lot of new projects happening and that most of them were in Ruby and some of them were in Scala. I picked up as much as I could until a DevOps group formed up and they started asking for an assist since it was a group new to the company and I had plenty of experience with how our systems were laid out.

Cue a different form of the Imposter Syndrome as I now had to deal directly with guys that I knew had more experience than me. But cue almost two years later, and I'm the only one out of three "helpers" that's now an official part of that group. I routinely work on tools that I and others have written in Ruby, and occasionally dip into helping other teams (in Scala even) with integrating their code.

It has gotten better over time, but I still deal with a bit of that Imposter Syndrome now and then, to the point that I know my coworkers have noticed. They've regularly assured me of what an asset I am, and there was even a small bit of panic from my team lead when I entertained a job interview elsewhere.

I share this, because I think it is important to realize that this is all pretty normal. I'm only really starting out my career, but seeing all the comments here, and the discussions I've had with others just keeps cementing that fact for me.

Your skill set will get specialized the more you stick to one place and their way of doing things, but that experience, while not directly applicable in all cases, is often invaluable when presented with new challenges.

From what I can tell, one of the most important skills to have is the ability to adapt and apply your knowledge and experiences to quickly learn new things. There's rarely a week that goes by that I don't learn a new trick or two, however minor. I know that will diminish as my experience grows, but I don't ever expect that to ever really end.

I honestly don't think I want it to. Despite the stress, its one of the most satisfying parts of what I do.

So just apply for the other jobs. If they're any good themselves they'll interview you well, and you'll both get a good feel for whether it is a good fit. That's what I did a few months ago, and it wasn't a good fit, and it was no surprise to me when I got the rejection.
It also doesn't help that I was so nervous I flubbed a FizzBuzz question, and some basic object oriented stuff!

But that's cool. I learned something. On to the next lesson.
 
There's an engineering fair of sorts for high school students that my university is putting on in about a week and a half. I work for one of the professors in the CS department, so I'm helping him with the Computer Science portion. It will be about an hour long class for us to introduce them to Computer Science.

I'm worried that the problem that the professor is planning on having them try to solve is going to be too difficult for a group of kids who may or may not have ever programmed before...it involves recursion. =O

Hopefully it goes decently. I've written a cool visualization for the problem at least, so there's that.
 

kingslunk

Member
*EDIT* Oh man, I'm an idiot. I saved the test.txt file as text.txt.txt. There's two hours wasted on nothing!


Clearly I have an error with reading the input file. I can' figure out what it is. I've tried putting the test.txt file in just about every folder that it could be searching it. I have tried putting the exact directory of the file, and I made sure to use "\\" for the backslashes of the directory. Am I missing something really stupid here?


I just ran your program and got these results in my testavg.out

The program is outputting correctly.
Student Name: John Smith
Test Scores: 92.50 84.30 77.20 95.90 98.30
Average Test Score: 89.64
 

Linkhero1

Member
I never finished my Bachelors and I jumped straight into a "Level 2 Software Developer" position with no prior professional experience. It was a transfer within my current workplace and they were taking a chance on me based on how well I tested.

My first job was revamping a project that was perfectly fine the way it was and I convinced them of that. To the point that the project was scrapped and they no longer had a need for me, a LAMP guy with both PHP and Perl skills.

With nothing to do for months, I was living the Imposter Syndrome for all that time. All I knew was that there were a lot of new projects happening and that most of them were in Ruby and some of them were in Scala. I picked up as much as I could until a DevOps group formed up and they started asking for an assist since it was a group new to the company and I had plenty of experience with how our systems were laid out.

Queue a different form of the Imposter Syndrome as I now had to deal directly with guys that I knew had more experience than me. But queue almost two years later, and I'm the only one out of three "helpers" that's now an official part of that group. I routinely work on tools that I and others have written in Ruby, and occasionally dip into helping other teams (in Scala even) with integrating their code.

It has gotten better over time, but I still deal with a bit of that Imposter Syndrome now and then, to the point that I know my coworkers have noticed. They've regularly assured me of what an asset I am, and there was even a small bit of panic from my team lead when I entertained a job interview elsewhere.

I share this, because I think it is important to realize that this is all pretty normal. I'm only really starting out my career, but seeing all the comments here, and the discussions I've had with others just keeps cementing that fact for me.

Your skill set will get specialized the more you stick to one place and their way of doing things, but that experience, while not directly applicable in all cases, is often invaluable when presented with new challenges.

From what I can tell, one of the most important skills to have is the ability to adapt and apply your knowledge and experiences to quickly learn new things. There's rarely a week that goes by that I don't learn a new trick or two, however minor. I know that will diminish as my experience grows, but I don't ever expect that to ever really end.

I honestly don't think I want it to. Despite the stress, its one of the most satisfying parts of what I do.

So just apply for the other jobs. If they're any good themselves they'll interview you well, and you'll both get a good feel for whether it is a good fit. That's what I did a few months ago, and it wasn't a good fit, and it was no surprise to me when I got the rejection.
It also doesn't help that I was so nervous I flubbed a FizzBuzz question, and some basic object oriented stuff!

But that's cool. I learned something. On to the next lesson.

Thank you for this. It's really reassuring and it's good to be reassured every once in a while. I try to learn something new every day and keep at it.
 

Two Words

Member
I just ran your program and got these results in my testavg.out

The program is outputting correctly.
Student Name: John Smith
Test Scores: 92.50 84.30 77.20 95.90 98.30
Average Test Score: 89.64
Appreciate you taking the time to do that. Yeah I managed to get it working last night. It was a pretty dumb oversight on my part. I saved the test file as "test.txt". I actually typed the extension. Maybe this changed with Windows 8, but I thought when you type the extension yourself when saving a file, it doesn't add the extension itself.
 

Onemic

Member
When would be the best time to start looking for a programming related job? to echo whats been said by other posters here previously, I feel like I know absolutly nothing about C++ and I don't know how much that will change after I'm done the second year of my program. I keep hearing the most important thing is having connections, but I know no one within the programming field.
 

kingslunk

Member
When would be the best time to start looking for a programming related job? to echo whats been said by other posters here previously, I feel like I know absolutly nothing about C++ and I don't know how much that will change after I'm done the second year of my program. I keep hearing the most important thing is having connections, but I know no one within the programming field.

Jobs that are hiring entry level positions know you know nothing about programming. The questions they'll probably ask you will gauge how good your problem solving skills are because that will essentially let them know if you can learn on your own.

1-2 years work experience will do wonders to your skills.
 

Onemic

Member
Jobs that are hiring entry level positions know you know nothing about programming. The questions they'll probably ask you will gauge how good your problem solving skills are because that will essentially let them know if you can learn on your own.

1-2 years work experience will do wonders to your skills.

Really? Every single entry level position I see offered asks for someone that has 5+ years of work experience in a given programming language or something else insanely high.

Unless I'm looking in the wrong places, I'm mainly using Craigslist and Kijiji
 

kingslunk

Member
Really? Every single entry level position I see offered asks for someone that has 5+ years of work experience in a given programming language or something else insanely high.

Unless I'm looking in the wrong places, I'm mainly using Craigslist and Kijiji

Getting your degree in comp sci is ~4 years experience in a language. Try dice.com

I can recommend some "must read" books if you wish to get better.
 

Onemic

Member
Getting your degree in comp sci is ~4 years experience in a language. Try dice.com

I can recommend some "must read" books if you wish to get better.

I'll check that out, thanks. Does it include jobs in Canada or only the US?

I already have C++ Primer 5th edition which I'm reading through this summer to have a more solid understanding of the language. Do you have any other recommendations though? Honestly, it's just a time thing and getting my feet wet by actually applying what I've learned, which I admit my program doesnt do too well.

I actually subscribed to Unreal Engine 4 to help alleviate that issue, since you can create everything using C++. By the end of the usmemr Im hoping to have many topics in C++ Primer covered and a small little game in UE4 completed and scripted using C++.
 

Tamanon

Banned
Make stuff. Be able to explain why you made decisions when making stuff. Be ready to show your thought process and the ability to explain it.

One thing I'd suggest is to keep track of things you've done wrong or inefficiently, what you did to fix/improve it, and how it impacts your development now.
 

iapetus

Scary Euro Man
Really? Every single entry level position I see offered asks for someone that has 5+ years of work experience in a given programming language or something else insanely high.

Back in 1999 I saw a job advert requiring 6+ years experience in Java...
 
I am with some of you guys too. Graduated last year with a comp sci degree and can't get a job. I mostly apply to like help desk or support jobs. I have had a few interviews but man it is tough out there. Programming skills are ok maybe I should try some IT certs or doing some extra projects.
 

Two Words

Member
Learning a computer language feels a lot like learning a spoken language. Much like a spoken language, when do you know you are fluent in a computer language? I don't mean knowing how to tackle particular problem. I'm talking strictly about understanding the syntax and rules, souls you expect yourself to know how every predefined and reserved keyword works, for example?
 

Makai

Member
Jobs that are hiring entry level positions know you know nothing about programming. The questions they'll probably ask you will gauge how good your problem solving skills are because that will essentially let them know if you can learn on your own.
I hope so. I have two (technical, I assume) interviews soon. These will be my first and I'm not sure what to expect (brushing up on the basic data structures). One is for a AAA game developer - I am honored to get the opportunity, but I am sure to bomb. I believe my personal projects are reasonably sophisticated, but those were developed "open-book." I will be out of my element with a lot less time and resources. I would be ecstatic if I got a brain teaser instead of an implementation challenge like my friends had.
 

r1chard

Member
I graduated from a course called Robotics and Digital Technology - kind of an even split between hardware and software. CS crossed with the low-power side of electrical engineering (those folk generate and convert 240v into something I can use :)

My first job was ops (we used to call ourselves "system administrators" lah-de-dah), in a team looking after a bunch of unix boxes. Took a couple of years in that position before I got to do actual programming.

Back then the Open Source community didn't have the tools it has now like github, bitbucket, stack overflow. If you want to walk into anything other than ops or help desk, then make sure you have a reputation to point at on those sites. None of that "github is my resume" bullshit, just have a presence that people can look at and see you actually demonstrate you know what you're doing. Otherwise you're just a CS graduate and - believe me, because I've worked with and interview plenty of them - there's tons of CS graduates who can't program their way out of a wet paper bag, and the only way you'll find that out is by hiring them and discovering they are worse than useless and firing them (worse because they have now caused the rest of the team more work undoing their mess).

And even then it will probably take 10 years before you can start focusing your career on the programming you actually like (unless you're really lucky).

That's my $0.02 anyway, as someone who's been in the industry for 20 years. For the last 7 or 8 years I've not had to do any sort of formal interview for a job, just a bunch of chats to see whether I want to take the job on offer. My resume and reputation is enough. But it takes time for that to build up. You're starting at the bottom, sorry.


Learning a computer language feels a lot like learning a spoken language. Much like a spoken language, when do you know you are fluent in a computer language? I don't mean knowing how to tackle particular problem. I'm talking strictly about understanding the syntax and rules, souls you expect yourself to know how every predefined and reserved keyword works, for example?
I used to work in a Perl shop and had to run interviews for a new dev at one point. I had them self-rate their knowledge of Perl out of 10. Anyone who rated themselves above a 7 got the nastiest edge case bizarro syntax whiteboard problem I could devise, because in my opinion there's only three Perl developers on the planet who are allowed to rate themseves a 9 or 10, and only the truly elite Perl devs can hold enough (not all) of Perl in their head to rank a 7 or 8.

On the other hand, anyone reasonably proficient with Python can fit the entire language in their head with room left over for most of the built in functions.

Ruby developers are fond of toy DSLs when they create new frameworks, so you can never actually know all of Ruby :)
 

msv

Member
I used to work in a Perl shop and had to run interviews for a new dev at one point. I had them self-rate their knowledge of Perl out of 10. Anyone who rated themselves above a 7 got the nastiest edge case bizarro syntax whiteboard problem I could devise, because in my opinion there's only three Perl developers on the planet who are allowed to rate themseves a 9 or 10, and only the truly elite Perl devs can hold enough (not all) of Perl in their head to rank a 7 or 8.
Seems antagonistic to put someone down for having a different scale than yours in an interview. Someone's idea of an 8,9,10 could be completely different from yours, seems silly to judge someone on having a different interpretation of it. Unless they're actually equating themselves to that elite of course.
 
Seems antagonistic to put someone down for having a different scale than yours in an interview. Someone's idea of an 8,9,10 could be completely different from yours, seems silly to judge someone on having a different interpretation of it. Unless they're actually equating themselves to that elite of course.

Depends HR often resorts to dubious methods. I never understood why building a bridge out of paper and glue which represented stability, regionality and the company brand helped them to assess my IT skills.
 

Two Words

Member
I used to work in a Perl shop and had to run interviews for a new dev at one point. I had them self-rate their knowledge of Perl out of 10. Anyone who rated themselves above a 7 got the nastiest edge case bizarro syntax whiteboard problem I could devise, because in my opinion there's only three Perl developers on the planet who are allowed to rate themseves a 9 or 10, and only the truly elite Perl devs can hold enough (not all) of Perl in their head to rank a 7 or 8.

On the other hand, anyone reasonably proficient with Python can fit the entire language in their head with room left over for most of the built in functions.

Ruby developers are fond of toy DSLs when they create new frameworks, so you can never actually know all of Ruby :)
I'm currently learning C++ and Java. How much should I expect to know?
 

r1chard

Member
Seems antagonistic to put someone down for having a different scale than yours in an interview. Someone's idea of an 8,9,10 could be completely different from yours, seems silly to judge someone on having a different interpretation of it. Unless they're actually equating themselves to that elite of course.
I was summarising a conversation. The intent of the line of questioning was to get directly to the level of understanding the applicant had about Perl, and their self-awareness of same. Perl is a huge, huge beast, and a truly competent programmer of Perl understands that they know some 1/2 of the language (which might not even be the most common 1/2) and anyone who is putting themselves forward as a professional Perl developer who does not understand that is, in my opinion, not a competent professional Perl developer. Their ignorance means they simply have not had enough experience, or they lack a basic level of insight.
 

Onemic

Member
So when would you guys suggest looking for an entry level position? My family keeps pushing me towards trying to get an internship or some type of volunteer work now for the summer season(even though an intership is all but guaranteed in my program since it's co-op, but that'll be at least a year away) I keep telling them I feel like I don't know nearly enough to even be helpful at an entry level, but it doesn't seem to get through.
 

leroidys

Member
So when would you guys suggest looking for an entry level position? My family keeps pushing me towards trying to get an internship or some type of volunteer work now for the summer season(even though an intership is all but guaranteed in my program since it's co-op, but that'll be at least a year away) I keep telling them I feel like I don't know nearly enough to even be helpful at an entry level, but it doesn't seem to get through.
ASAP. Programming is definitely something that you only learn by doing. And for CS, you usually get paid too.
 

traveler

Not Wario
I was summarising a conversation. The intent of the line of questioning was to get directly to the level of understanding the applicant had about Perl, and their self-awareness of same. Perl is a huge, huge beast, and a truly competent programmer of Perl understands that they know some 1/2 of the language (which might not even be the most common 1/2) and anyone who is putting themselves forward as a professional Perl developer who does not understand that is, in my opinion, not a competent professional Perl developer. Their ignorance means they simply have not had enough experience, or they lack a basic level of insight.

That's fine and all, but if it's in an interview scenario, your candidates are probably incredibly scared of rating themselves low for fear of jeopardizing the job off their lack of confidence alone. Interview prep materials routinely emphasize projecting confidence in all areas and, in America especially, anything less than 70% on any scale has terrible connotations.

Furthermore, it seems weird to consider someone's expertise to largely be tied to their memorization of a percentage of a language's syntax, given that all of a language will be available through various resources to the working programmer. Wouldn't checking their ability to apply and make the right choices using more basic, commonly known aspects of the language be a more useful gauge of their ability?

I'm by no means an expert here, though; looking for entry level jobs currently as well, so I guess take all of my two cents with a pretty large of grain of salt. Just my perspective based on my own experiences with interviewers.
 

Onemic

Member
ASAP. Programming is definitely something that you only learn by doing. And for CS, you usually get paid too.

I'm not in a CS program, but a co-op Computer Programming and Analysis program at a college.

Thing is, I don't even know where to look when it comes to finding these internships. I tried Dice that was recommended and the only position somewhat near me(Im based in Toronto) that doesn't have insane qualifications, I still don't meet all the qualifications for. They're looking for someone with a year of C++(which I have) and fluency in Java and core Java classes(which I don't have as I've never learned Java). Not to mention it's a permanent full time, which I of course can't do since I'm still in school.
 

Godslay

Banned
I'm not in a CS program, but a co-op Computer Programming and Analysis program at a college.

Thing is, I don't even know where to look when it comes to finding these internships. I tried Dice that was recommended and the only position somewhat near me(Im based in Toronto) that doesn't have insane qualifications, I still don't meet all the qualifications for. They're looking for someone with a year of C++(which I have) and fluency in Java and core Java classes(which I don't have as I've never learned Java). Not to mention it's a permanent full time, which I of course can't do since I'm still in school.

You shouldn't care about the qualifications. Put in for it, and let them decide if they want to bring you in for a look. Nothing really bad can come from it. Make them tell you that you are under qualified for the position, and if this is the case learn what exactly they want for the position, so that you can make yourself more marketable in your area.

Additionally, you get some experience being in tech interviews, which should prove helpful down the road. Plus, you increase your networking surface area to some degree. For the risk of a little bit of rejection, you get the potential rewards of either a job, increased knowledge of what people are looking for, or contacts in the industry. Or all three. Never hurts to try, you'd be amazed at how people will help you if you just ask.
 

Fantastical

Death Prophet
I used to work in a Perl shop and had to run interviews for a new dev at one point. I had them self-rate their knowledge of Perl out of 10. Anyone who rated themselves above a 7 got the nastiest edge case bizarro syntax whiteboard problem I could devise, because in my opinion there's only three Perl developers on the planet who are allowed to rate themseves a 9 or 10, and only the truly elite Perl devs can hold enough (not all) of Perl in their head to rank a 7 or 8.

I'm sorry, but what a bunch of bullshit. This is why interviews suck.
 

r1chard

Member
I'm sorry, but what a bunch of bullshit. This is why interviews suck.
We were specifically hiring experienced (more than 5 years' professional experience) developers. I should have made that clear. If this was for an entry-level position, then sure, the questioning would have been different (less about technical specifics, more about generally determining the candidate's overall communication, problem solving and information gathering skills).

I get that interviews are difficult from the perspective of a candidate - I've been there.

I hate interviewing and being interviewed.

Interviews are bloody hard from an employer perspective. They're an expensive, drawn-out process so you want to hire someone who can actually do the job, preferably someone who can be productive immediately and preferably four weeks ago. In my experience, potential candidates will misrepresent themselves (lie, bald-faced). Their references will misrepresent them (lying, bald-faced). The bulk of what you can learn about them is what you discover in the interview. You have to poke at their statements and claims with a sharp stick. So, short of asking very detailed questions, and having coding tests, and having those stupid general problem-solving questions ("how many petrol stations are there in the country of Whereveristan?") how can you have any certainty that you're not only not wasting money, but hopefully not also wasting the time of the rest of the team they're being hired into?
 

Water

Member
Interviews are bloody hard from an employer perspective. They're an expensive, drawn-out process so you want to hire someone who can actually do the job, preferably someone who can be productive immediately and preferably four weeks ago. In my experience, potential candidates will misrepresent themselves (lie, bald-faced). Their references will misrepresent them (lying, bald-faced). The bulk of what you can learn about them is what you discover in the interview. You have to poke at their statements and claims with a sharp stick. So, short of asking very detailed questions, and having coding tests, and having those stupid general problem-solving questions ("how many petrol stations are there in the country of Whereveristan?") how can you have any certainty that you're not only not wasting money, but hopefully not also wasting the time of the rest of the team they're being hired into?
Not by testing whether their head is a valid compiler, that's for sure. Good developers program defensively so that they don't have to remember it all.
 

Onemic

Member
You shouldn't care about the qualifications. Put in for it, and let them decide if they want to bring you in for a look. Nothing really bad can come from it. Make them tell you that you are under qualified for the position, and if this is the case learn what exactly they want for the position, so that you can make yourself more marketable in your area.

Additionally, you get some experience being in tech interviews, which should prove helpful down the road. Plus, you increase your networking surface area to some degree. For the risk of a little bit of rejection, you get the potential rewards of either a job, increased knowledge of what people are looking for, or contacts in the industry. Or all three. Never hurts to try, you'd be amazed at how people will help you if you just ask.

how do you get into the situation where you get contacts from an interviewer? I've never done an interview where I've seen such an opportunity unless it was a purely informational interview.

Also what should I expect for a programming interview? from the posts in here it seems quite a bit different from regular interviews. Asking problem solving questions and what not....seems even more stressful than a traditional interview.

Lastly do you know of any other good job search sites focused on tech/programming other than dice?
 

iapetus

Scary Euro Man
In my experience, potential candidates will misrepresent themselves (lie, bald-faced). Their references will misrepresent them (lying, bald-faced). The bulk of what you can learn about them is what you discover in the interview. You have to poke at their statements and claims with a sharp stick. So, short of asking very detailed questions, and having coding tests, and having those stupid general problem-solving questions ("how many petrol stations are there in the country of Whereveristan?") how can you have any certainty that you're not only not wasting money, but hopefully not also wasting the time of the rest of the team they're being hired into?

The sort of questions I like to ask are revealing about their understanding of things they've worked on. Pure syntax questions are largely pointless for anything other than an entry level role. For a low-end role, I'd probably go with something like (for a Java role): "Define an equals method for this class." That's fine, and you can probe quite a lot into their understanding of the language from that launch point.

For a high-end role, though, you want to know more about their skills that have language capability as a pre-requisite. Ask them to walk you through the design process for one of the apps they're taking credit for in their CV and why they made certain decisions. That wipes out most of the liars, because they don't know how the design process went. Change a couple of basic assumptions and ask how that would have changed their design. ("Let's say you wanted to provide the front end on mobile instead of terminals - how would that have changed things?", "How would you have come at this differently if you needed to support 1000 times the userbase?" or even "Knowing what you do now, what would you have done differently at the start of the project?") That'll catch most of the good liars who've bothered to find out a bit about the design of the apps they're taking credit for.

Ask them questions that anyone with lots of experience and understanding of the language will have a good answer for, anyone with some experience and understanding of the language will have an answer for, and anyone without the experience and understanding will be stumped by. "What's the most frustrating thing about iOS from a developer's perspective?" "What changes would you like to see in C#?" "How would you go about defining a wire format for messaging in this app?" "What ideas should Google steal from Apple for Android 5?" You'd be surprised by how easily that sort of question weeds out the good applicants from the great ones. And they're next to impossible to prepare for in the way that many interview questions are, and they don't end up giving false negatives because an awesome developer doesn't remember a bit of syntax that their IDE will supply for them on a daily basis anyway...

Last round of interviews I was doing, I used a question like that - about frustrations of an iOS developer. One candidate had no answer. Fail. One candidate came up with some answers quickly, but pretty soon it turned out they weren't actually genuine problems and showed an incomplete understanding of the platform. Fail. One candidate had genuine pain in his eyes as he ranted about the table model, what he'd do to fix it, why it was insane that Apple hadn't rectified things, and code he'd played with that helped alleviate the problems of dealing with it. Winner!

Normally you can get an idea of their language level skills through this sort of discussion. If not, you can weed the candidates down sufficiently that you can quickly confirm their language skills in a follow-up test. But as a rule, if you've got the high-level understanding at your fingertips you've got that through applying the low-level stuff. As a rule I'm less worried about syntax for high-level candidates for that very reason; you don't get good to the point that you understand the big picture without being able to do the low-level coding to a high standard.
 
The sort of questions I like to ask are revealing about their understanding of things they've worked on. Pure syntax questions are largely pointless for anything other than an entry level role. For a low-end role, I'd probably go with something like (for a Java role): "Define an equals method for this class." That's fine, and you can probe quite a lot into their understanding of the language from that launch point.

For a high-end role, though, you want to know more about their skills that have language capability as a pre-requisite. Ask them to walk you through the design process for one of the apps they're taking credit for in their CV and why they made certain decisions. That wipes out most of the liars, because they don't know how the design process went. Change a couple of basic assumptions and ask how that would have changed their design. ("Let's say you wanted to provide the front end on mobile instead of terminals - how would that have changed things?", "How would you have come at this differently if you needed to support 1000 times the userbase?" or even "Knowing what you do now, what would you have done differently at the start of the project?") That'll catch most of the good liars who've bothered to find out a bit about the design of the apps they're taking credit for.

Ask them questions that anyone with lots of experience and understanding of the language will have a good answer for, anyone with some experience and understanding of the language will have an answer for, and anyone without the experience and understanding will be stumped by. "What's the most frustrating thing about iOS from a developer's perspective?" "What changes would you like to see in C#?" "How would you go about defining a wire format for messaging in this app?" "What ideas should Google steal from Apple for Android 5?" You'd be surprised by how easily that sort of question weeds out the good applicants from the great ones. And they're next to impossible to prepare for in the way that many interview questions are, and they don't end up giving false negatives because an awesome developer doesn't remember a bit of syntax that their IDE will supply for them on a daily basis anyway...

Last round of interviews I was doing, I used a question like that - about frustrations of an iOS developer. One candidate had no answer. Fail. One candidate came up with some answers quickly, but pretty soon it turned out they weren't actually genuine problems and showed an incomplete understanding of the platform. Fail. One candidate had genuine pain in his eyes as he ranted about the table model, what he'd do to fix it, why it was insane that Apple hadn't rectified things, and code he'd played with that helped alleviate the problems of dealing with it. Winner!

Normally you can get an idea of their language level skills through this sort of discussion. If not, you can weed the candidates down sufficiently that you can quickly confirm their language skills in a follow-up test. But as a rule, if you've got the high-level understanding at your fingertips you've got that through applying the low-level stuff. As a rule I'm less worried about syntax for high-level candidates for that very reason; you don't get good to the point that you understand the big picture without being able to do the low-level coding to a high standard.

Did you ever had to interview someone for a software quality assurance / tester position? How would you "grill" them to find out what they really can do?
 
emot-words.gif
.
icon_salut.gif
Well said!

Did you ever had to interview someone for a software quality assurance / tester position? How would you "grill" them to find out what they really can do?

Just ask them what they have done in the past and which kind of methods and tools have they used with what results? Throw them a scenario and ask how they would solve it? QA needs certain mindset that isn't really that hard to "grill" out of IMO.
 
icon_salut.gif
Well said!



Just ask them what they have done in the past and which kind of methods and tools have they used with what results? Throw them a scenario and ask how they would solve it? QA needs certain mindset that isn't really that hard to "grill" out of IMO.

Yes but it feels like this job is where the person is "more important" than the qualification - are they reliable, how do they perform under stress, can they work out differences between development / testing, ...

I think testing can sometimes be a rather "boring" challenge and in the end you have to tell your collegues that they messed up. Not something everybody can or wants to do.
 

oxrock

Gravity is a myth, the Earth SUCKS!
Guide me programming GAF!

I'm basically searching for some advice as to what the best way to break into the industry would be... in the future. I'm a college dropout, went for electrical engineering for a bit but only really knocked out the pre-reqs and never got into the fun stuff. Since then I've been teaching myself programming a bit, I chose python to get started and now I feel really confident in that language and have just started moving on to C# mostly because I want to work in the unity engine.

I guess my question is, is it even possible for someone similar to myself to get hired without having a degree? I KNOW I'M NOT READY YET but I plan to work on adding to my skillset and gaining better mastery of what I do have. Any helpful advice for ways to move forward? I'm assuming my best bet would to have an extensive portfolio to validate my abilities.

Tips on how best to improve my skills and move towards being marketable + other generalized or specific information/advice is most definitely encouraged and appreciated.
 

iapetus

Scary Euro Man
Did you ever had to interview someone for a software quality assurance / tester position?

No, that's never been something I've had to do - I've recommended QA/test people based on prior knowledge of their work and personality, but not had to interview blind on it. To be honest, I'd probably end up hiring QA guys based on how much they look like this:

damsel-in-distress.jpg
 
Guide me programming GAF!

I'm basically searching for some advice as to what the best way to break into the industry would be... in the future. I'm a college dropout, went for electrical engineering for a bit but only really knocked out the pre-reqs and never got into the fun stuff. Since then I've been teaching myself programming a bit, I chose python to get started and now I feel really confident in that language and have just started moving on to C# mostly because I want to work in the unity engine.

I guess my question is, is it even possible for someone similar to myself to get hired without having a degree? I KNOW I'M NOT READY YET but I plan to work on adding to my skillset and gaining better mastery of what I do have. Any helpful advice for ways to move forward? I'm assuming my best bet would to have an extensive portfolio to validate my abilities.

Tips on how best to improve my skills and move towards being marketable + other generalized or specific information/advice is most definitely encouraged and appreciated.

Honestly one of the best things about CompSci is that a degree is almost worthless (unless it came from an amazing school) in the face of a portfolio. So just continue to improve your skills and get a good portfolio going.

If you need some ideas for a portfolio, check out doing phone apps. You can put them up on the store, maybe make a little money from them while job searching, they are easy for an interviewer to download and try and can teach you alot about just committing to a larger project and getting all the parts to flow together instead of little one-off programs.
 

oxrock

Gravity is a myth, the Earth SUCKS!
Honestly one of the best things about CompSci is that a degree is almost worthless (unless it came from an amazing school) in the face of a portfolio. So just continue to improve your skills and get a good portfolio going.

If you need some ideas for a portfolio, check out doing phone apps. You can put them up on the store, maybe make a little money from them while job searching, they are easy for an interviewer to download and try and can teach you alot about just committing to a larger project and getting all the parts to flow together instead of little one-off programs.

I haven't done any phone apps yet, just games so far but I will certainly check into them. Thanks.

Any more sage words of advice GAF collective?
 

Two Words

Member
So just how big of a deal is Swift going to be for OS X and iOS? As a programming student planning to get a Macbook Pro as soon as they refresh them with Broadwell, how pumped should I be about this?
 

Tamanon

Banned
So just how big of a deal is Swift going to be for OS X and iOS? As a programming student planning to get a Macbook Pro as soon as they refresh them with Broadwell, how pumped should I be about this?

I'd be pretty pumped if you're looking into developing Apps. Seems like it streamlines the process, and Playground looks great.

BTW, the book for the language is up already on iBooks, Free of course.

https://itunes.apple.com/gb/book/swift-programming-language/id881256329?mt=11
 
Does Apple offer any discounts for students when it comes to developer licenses? This Swift announcement just got me pretty hyped to do some stuff for iOS.
 
Top Bottom