• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
ajm113

Picking Up New Languages/APIs for Getting a Job

8 posts in this topic

Okay well I've been programming since around 2006, and yet I've still want to land a job as a programmer and after a couple of years searching and doing my own work and releasing a few 3D game engines from scratch, open source software, and writing tutorials. I've haven't seen any jobs that caught my attention that are local and use my primary language of choice C/C++. I've even started a open source project with my friend just to get more experience and to put something on a resume, just like a intern.

I would think my primary language would be highly used, due to it's cross-platform flexibility, but after a while I come to find out it appears my old friend C# and ASP.NET is being used more often in the job market. Now my question is; if you have little experience with a tool or language, or can pick up on things very quickly, would you teach yourself a tool or language just to keep/get a job in the field?

Does it seem like it works out at the end or is it kinda a bad idea even if you know a good amount of languages/tools?

Here is my background:
Certification in Object Oriented Programming
High School Diploma
Going to school for a certification in Computer Science.

Languages:
C/C++, C#, Python, Java, SQL, PHP, JavaScript, HTML, CSS, AJAX, BASIC(MCUs), a little assembly.

Tools:
Apache, MySQL, Visual Studio 2005-2008, Xcode, PhotoShop, Maya 3D,
CMake, Eclipse, MPLAB, of course Word, and Excel.

I know I should pick up on .NET more even though I've haven't touched it in years, but is there anything else I should learn or know that small businesses will more then likely use? Is it recommended to start picking up Microsoft's SQL Server or Oracle? I already know how to use MySQL, so I'm sure they wouldn't be too hard to master. Edited by ajm113
0

Share this post


Link to post
Share on other sites
Careful with the word "master". I haven't ever met anyone in person who I consider a master in a certain technology, and if I have, they've been far and few between. I've been a C#/SQL server developer for 6-7 years now and I can't even confidently say that I have "mastered" any of it. I still learn new things everyday.

If you're really fluent in all of those languages then you are off to a good start. You should absolutely be capable of learning new languages for a new job and it's something I do very frequently. If you want to continue into this field you absolutely have to be capable of learning new things quickly and efficiently, our field changes VERY often.

More than anything the smaller companies are going to be looking for someone who can pick up on new things quickly. Knowing several languages is always good, but being able to show that you truly understand these technologies (why they exist, what they are useful for, and how they relate to one another) will help you that much more in landing a job. If I'm hiring someone, the language is almost a moot point: I'm looking for someone who can *think* like a programmer. Someone with very strong logical and reasoning skills, someone who's capable of thinking in a very abstract sense. Anyone can learn syntax, but not everyone can design and develop a robust system that is going to scale effectively with minimal resources.

Most of the programming languages in your list are multi-paradigm with special focus on OO and procedural programming. I highly recommend you delve into a functional programming language (Haskell, or Erlang if you want something that has a little more real world use). Being able to demonstrate that you understand the different programming paradigms and their strengths and weaknesses will weigh that much more in getting a job that you enjoy. Functional languages like Haskell also tend to be very elegant in the way they describe and solve problems -- and they tend to force you to think about the problems you are solving in a different way. THIS is what your goal should be.. to be capable of tackling a problem from several different angles. This is also what they are truly going to be looking for when they are searching for a remarkable candidate.

The fact is, there are tons of Java/.NET enterprise shops out there with legions of code monkeys at their disposal. A lot of these guys know any number of languages, but they struggle with some basic concepts and are very limited in what they can actually do. There's no shortage of these guys out there -- and if you want to stand out in an interview, you have to demonstrate that you are beyond the mere syntactical differences between these languages. The languages are only tools, they are means to an end.

So my advice is: learn something wildly different than what you are used to. I recommend Haskell. It's not necessarily something that you can pad your resume with (and if the job doesn't suggest anything about it, don't pad your resume with it). But it will open your eyes and show you different ways to think about problems.

The list of languages on your resume is only to pass the HR tests of determining whether or not you are a worthy candidate on paper. The things that are going to get you through are your overall problem solving capability and your abstract thinking skills. Interviewers go through hordes of interviewees all with the same languages listed on paper, the thing that sets candidates apart are their actual thinking skill and what you are going to bring to the table.
0

Share this post


Link to post
Share on other sites
[left]Oops, yeah I sometimes over use the word "mastered", I've been doing C++ for about 5 years and I agree too that I don't believe I've completely mastered it even though I've pretty much have done everything with it, such as Networking, GUIs, cross platform programming, and of course file structure design and etc.[/left]

[left]I will defiantly take up [color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif][background=rgb(250, 251, 252)]Haskell, Erlang, and maybe throw a few other languages/tools of course; such as Perl, Go .NET(refresher). Then learn some SQL Server, since it appears SQL Server seems to be in a good demand, and my database knowledge could be better. I defiantly think my thinking skills are well, maybe not the best in the world, but in short; I can defiantly get the job done with best optimization and good results with any language and of course there is always room for improvements, I just believe my main problem is that I don't know enough languages/tools that small to big industries use in order to get a job, even though I have a lot of prior experience, it really won't make up for the amount of stuff that is out there.[/background][/font][/color][/left]

[size=4][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif][background=rgb(250, 251, 252)]I really appreciate your advice on leading me to the right direction and recommending me to open my mind to new languages/tools that could help me land a job in a field I love, since I'm sure most of use much rather deal with computers then people.[/background][/font][/color][/size] Edited by ajm113
0

Share this post


Link to post
Share on other sites
In my experience, companies are often willing to hire people who don't know the specific language or API being used. If you're good enough for the job and have relevant skills in the other areas, and can program, many are willing to let you pick it up as you go. Even more so for something as specific as an API. And even more so for entry-level positions (which presumably you're going for, if you have no previous commercial experience).

[quote]Now my question is; if you have little experience with a tool or language, or can pick up on things very quickly, would you teach yourself a tool or language just to keep/get a job in the field?[/quote]Both. No harm in picking up new skills if you're getting turned down. But any programmer with some experience should be able to pick up new languages and APIs. Edited by mdwh
0

Share this post


Link to post
Share on other sites
Where do you live? It might just be because you aren't willing to relocate. When I was in SF for GDC I was super surprised by the number of totally random people (non-GDC attendees) were looking for SEs just walking around the town.
0

Share this post


Link to post
Share on other sites
@mdwh Thats a very good point, thank you for your advice. That defiantly encourages me throw more applications around to get the job even if I've never touched the API or language. =)

I live in New Jersey, I moved up here in hopes to have better chances on getting a software engineering job, since I have family up here too. I do live about 45 minutes away from New York by train of course, but ironically I've never been in New York, so I don't want to apply at jobs in New York, when I'm not sure what the area is like.
0

Share this post


Link to post
Share on other sites
Sorry for double posting, but Erlang, seems to be GREAT! It's a bit of a headache trying to wrap your head around how the ending characters work unlike the semicolon from C and C++, especially when your working with if statements, but I have my very first source code using Erlang, and I plan on doing more such as creating a simple IP directory lookup server. ^^ I'm very surprised that this language can do a lot of work very quickly, and is being used for phone operations and even being used for Facebook.

My Code Encase anyone is interested how it looks:
[CODE]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Written by: Andrew McRobb
% Written in Erlang
% Do what ever you please with this script!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%"helloWorld" is our filename, or module in this manner.
-module(helloWorld).

%define what functions are are using. First function is our main.
-export([start/0, writeLine/1, overallScore/1]).


%equal to echo/print in any other language.
writeLine(Text) ->
io:fwrite("~s\n", [Text]).
%if statment example.
overallScore(Val) ->
if
(Val < 10) ->
writeLine("You suck!");
(Val > 9) and (Val =< 30) ->
writeLine("You are okay...");
(Val > 30) and (Val =< 70) ->
writeLine("Good! Not too shabby!");
false ->
writeLine("Great job!")
end.


%Main/start up function.
start() ->
writeLine("Hello, Erlang!"),
writeLine("This is a second line!"),
overallScore(70).
[/CODE] Edited by ajm113
0

Share this post


Link to post
Share on other sites
[quote name='ajm113' timestamp='1338555850' post='4945289']
[left]Oops, yeah I sometimes over use the word "mastered", I've been doing C++ for about 5 years and I agree too that I don't believe I've completely mastered it even though I've pretty much have done everything with it, such as Networking, GUIs, cross platform programming, and of course file structure design and etc.[/left]
[/quote]


I worked professionally as a C++ developer for nearly 10 years I wouldn't say I "mastered" the language. [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]

[quote name='ajm113' timestamp='1338555850' post='4945289']
[left][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif][background=rgb(250, 251, 252)]I [b]defiantly [/b]think my thinking skills are well...[/background][/font][/color][/left]
[left][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif][background=rgb(250, 251, 252)]I really appreciate your advice on leading me to the right direction and recommending me to open my mind to new languages/tools that could help me land a job in a field I love, since I'm sure most of use much rather deal with computers then people.[/background][/font][/color][/left]
[/quote]

OK, you're going to think I'm being an ass here, so I'm going to preface this by saying
[left][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif][background=rgb(250, 251, 252)]I'm not trying to be mean and I wish you luck in your career. The advice that follows is meant to be constructive.[/background][/font][/color][/left]



The word you're looking for is "[b]definitely[/b]". I realise that this sounds really pedantic, but programming is communication, and just about the most pedantic form of communication going. When I see spelling errors and grammatical mistakes in applications, it feels lazy to me. Maybe when you talk to companies, you're more careful, but just be aware this stuff matters.

Also, if you would rather "[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif][left][background=rgb(250, 251, 252)]deal with computers then people", go look for another job. Seriously.[/background][/left][/font][/color]


[left][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif][background=rgb(250, 251, 252)]99.9999% of software is developed by a team. The days of the lone coder heroically banging out a program in a darkened room were rare enough 10 years ago, let alone today. You will have to deal with plenty of other people; many of whom will have conflicting agendas.[/background][/font][/color][/left] Edited by ChaosEngine
0

Share this post


Link to post
Share on other sites
[quote name='ChaosEngine' timestamp='1338860397' post='4946279']
[quote name='ajm113' timestamp='1338555850' post='4945289']
[left]Oops, yeah I sometimes over use the word "mastered", I've been doing C++ for about 5 years and I agree too that I don't believe I've completely mastered it even though I've pretty much have done everything with it, such as Networking, GUIs, cross platform programming, and of course file structure design and etc.[/left]
[/quote]


I worked professionally as a C++ developer for nearly 10 years I wouldn't say I "mastered" the language. [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]

[quote name='ajm113' timestamp='1338555850' post='4945289']
[left][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif][background=rgb(250, 251, 252)]I [b]defiantly [/b]think my thinking skills are well...[/background][/font][/color][/left]
[left][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif][background=rgb(250, 251, 252)]I really appreciate your advice on leading me to the right direction and recommending me to open my mind to new languages/tools that could help me land a job in a field I love, since I'm sure most of use much rather deal with computers then people.[/background][/font][/color][/left]
[/quote]

OK, you're going to think I'm being an ass here, so I'm going to preface this by saying
[left][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif][background=rgb(250, 251, 252)]I'm not trying to be mean and I wish you luck in your career. The advice that follows is meant to be constructive.[/background][/font][/color][/left]



The word you're looking for is "[b]definitely[/b]". I realise that this sounds really pedantic, but programming is communication, and just about the most pedantic form of communication going. When I see spelling errors and grammatical mistakes in applications, it feels lazy to me. Maybe when you talk to companies, you're more careful, but just be aware this stuff matters.

Also, if you would rather "
[left][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif][background=rgb(250, 251, 252)]deal with computers then people", go look for another job. Seriously.[/background][/font][/color][/left]



[left][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif][background=rgb(250, 251, 252)]99.9999% of software is developed by a team. The days of the lone coder heroically banging out a program in a darkened room were rare enough 10 years ago, let alone today. You will have to deal with plenty of other people; many of whom will have conflicting agendas.[/background][/font][/color][/left]
[/quote]

Exactly.. I'd say that at least 60% of my actual job is communication, and not necessarily programming. I churn out a lot of code, but the majority of my time is spent gathering requirements, working with other members on my team on core software design, communicating with stakeholders on business rules, and going back and forth during QA testing. And it was like that at my last software development job, too. I'd love to be able to program for the majority of my working time but I unfortunately can't because I spend most of my time trying to communicate with the stakeholders in determining exactly what it is that they need me to deliver.

I'd even go so far as to say that programming is the easiest part of the job (depending on the exact field of programming you are in). Computers are deterministic and will for the most part deliver predictable results, people are.... not so much any of the above :). Most of the frustration I experience from a day to day basis is with communication, and if that's something that you can't handle then turn away now, lol.

Being able to gather specs and communicate with the customer is such an important role that at the bigger operations you'll find people whose entire job is dedicated to those tasks, the common job title here is something like "requirements engineer" or "business analyst". At the smaller companies, of which it seems like you are targetting ajm113, they expect someone who has these skills AND is capable of programming complex systems. I've worked on both ends of the spectrum and even if you do have the luxury of someone who will deal with all the strenuous specification work, you're still going to have to communicate with a lot of people in order to get your job done right.


[quote name='ajm113' timestamp='1338608167' post='4945478']
Sorry for double posting, but Erlang, seems to be GREAT! It's a bit of a headache trying to wrap your head around how the ending characters work unlike the semicolon from C and C++, especially when your working with if statements, but I have my very first source code using Erlang, and I plan on doing more such as creating a simple IP directory lookup server. ^^ I'm very surprised that this language can do a lot of work very quickly, and is being used for phone operations and even being used for Facebook.

My Code Encase anyone is interested how it looks:
[CODE]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Written by: Andrew McRobb
% Written in Erlang
% Do what ever you please with this script!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%"helloWorld" is our filename, or module in this manner.
-module(helloWorld).

%define what functions are are using. First function is our main.
-export([start/0, writeLine/1, overallScore/1]).


%equal to echo/print in any other language.
writeLine(Text) ->
io:fwrite("~s\n", [Text]).
%if statment example.
overallScore(Val) ->
if
(Val < 10) ->
writeLine("You suck!");
(Val > 9) and (Val =< 30) ->
writeLine("You are okay...");
(Val > 30) and (Val =< 70) ->
writeLine("Good! Not too shabby!");
false ->
writeLine("Great job!")
end.


%Main/start up function.
start() ->
writeLine("Hello, Erlang!"),
writeLine("This is a second line!"),
overallScore(70).
[/CODE]
[/quote]

Cool stuff! With Erlang, you should take some time to explore some of the things the language is known to be good at -- the big thing that comes to mind is concurrency. I haven't played with Erlang much, but from my own reading that seems to be the major appeal of the language. With multi-core computers being the norm these days, a lot of companies are looking for individuals who know how to optimize their code to make use of multiple cores when solving a problem. If you can create a pet project that does something like this with Erlang, you could totally throw that in your portfolio and be able to talk about that at an interview if they ask about experience with concurrency at all.

Anyway, good luck and have fun!
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0