Quote:
Originally Posted by katnc
Hello all,
In May, I completed a Master's degree in a psychological science (after obtaining a bachelor's in Human Services) and spent 5 years working in the human services industry with children who have developmental disabilities. I am kind of regretting the educational decisions, but not the experience, as I learned SO much.
I am still fascinated by the field I spent so much time in; however, there are multiple reasons (I won't detail them all here) that I would like to try something new.
About nine or ten years ago, I took some PHP classes, HTML, etc. and was quite good at those, so I know I am mentally capable and I also enjoyed it.
I just don't know where to begin, or whether I should begin pursuing a new line of work. I found some inexpensive courses in Java, C#, SQL, etc that I could take, but what should I start with? I was thinking an introductory course in Java would be a good place to begin.
Any advice from current programmers/ developers/ career switchers? Since I already have a bachelor's and master's degree, I have no desire to rack up more student loans or attempt a new degree... thinking certifications and some work experience is key.
Sorry for the long post! Any advice?
Thanks!
katnc
|
I sort of cringe when I think of Java. There's a number of company's that still use it, but if you wanna learn something that just about everyone is using: C#, MVC and Webforms, HTML, JavaScript, CSS, PHP and SQL. Now, I know I named like 8 things right there, but they're all very intertwined.
You took classes in PHP and HTML, so I take it you understand the relationship between CSS, HTML, PHP and JavaScript. Depending on how far you got into it, you probably understand the (rather extreme) value of SQL too.
Almost every tech company is using these tools one way or another. Maybe it's for an administrative control panel, maybe it's for data visualizations and trend tracking, maybe for a public website. No matter the use, these tools are extremely valuable to be knowledgeable in.
It's kinda hard to tell what type of programming you're looking to do. So let me give you a couple things here:
Drivers, Operating Systems, Low Level code:
ASM - ASM or Assembler has a 1:1 correlation with the machine code that is sent to the processor. Essentially, with ASM, you'll be manipulating bytes using a lot of cryptic words like "jmp" and "mov."
Mobile Games:
Objective C and Java - Basically, get real familiar with the term "Object Oriented Programming" or OOP.
Computer Games:
It's really hard to pin this down to one or two languages. Some popular ones are:
C - Generally not used to program entire games, unless your a hardcore Linux fan and that's the way you wanna roll. It normally would be used to optimize CPU intensive tasks like shadow casting and such.
C++ - Pretty common, looks intimidating at first with all the operators, but it's not really that bad.
C#/.NET - Getting more and more common by the day. Easy to use because it utilizes Microsoft's .NET framework. Everything you could want to do is generally easily achieved in a prepackaged function.
Java - Minecraft was made in Java. I think after everyone realized this, a whole new generation of Java programmers popped into existence wanting to make their own java games. I hate Java personally though, so...
Computer Utilities, Simulations, etc.:
Again, it's very hard to pin this down to a specific language. From my experience:
Simulations (Mathematical and Scientific) would be best done in a language with low level access to provide maximum optimization, like C.
Utilities for Windows are often times C# with .NET, as it's simple to create interfaces that everyone is familiar with. Some companies are starting to move away (or have always created their own path) from this in favor of material design, flat design, etc. (Google, Github, Microsoft, etc.)
Data Visualization - I personally (this being probably 50% of my Job right now) think this is easiest achieved in JavaScript with an SQL database (AKA, Learn JS, PHP, HTML and SQL).
If anyone wants to comment on this and add their own experience to what I've said, that'd be great.
I have worked in Mobile Games and done a fair amount of my own work on Computer games.
Quote:
Any advice from current programmers/ developers/ career switchers?
|
I am currently working as a Network Administrator and developing Data Visualization tools for the company I work at as well as utilities.
I co-own a game development company for mobile devices which is still a work in progress and have released mobile games before.
As far as "Are you in over your head" goes, absolutely not. I think that this is a great thing you're doing and I highly encourage it!
Quote:
Sorry for the long post! Any advice?
|
Look for what you want to do specifically. Start with a specific goal and learn everything you need to achieve that goal, then set another goal and learn everything you need to achieve that goal. Goals could be things like "First, I wanna make a flappy birds clone. Then I wanna make a GameBoy emulator. Then a data Visualization Tool." Set specific goals and learn specific things. Before you know it, you'll be whipping up code in minutes and every "new" problem you run into, you'll already know how to solve from experience gained on previous projects.
Honestly, once you pick up one programming language and really understand it, picking up new ones is easy. It'll take a few days to get comfortable in it and you'll be fine.