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.
I worked professionally as a C++ developer for nearly 10 years I wouldn't say I "mastered" the language.
I defiantly think my thinking skills are well...
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.
OK, you're going to think I'm being an ass here, so I'm going to preface this by saying
I'm not trying to be mean and I wish you luck in your career. The advice that follows is meant to be constructive.
The word you're looking for is "definitely". 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 "
deal with computers then people", go look for another job. Seriously.
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.
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.
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:
% Written by: Andrew McRobb
% Written in Erlang
% Do what ever you please with this script!
%"helloWorld" is our filename, or module in this manner.
%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.
%if statment example.
(Val < 10) ->
(Val > 9) and (Val =< 30) ->
writeLine("You are okay...");
(Val > 30) and (Val =< 70) ->
writeLine("Good! Not too shabby!");
%Main/start up function.
writeLine("This is a second line!"),
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!