Jump to content

Help Me Choose A Technology To Learn And Develop Skills In And Why


7 replies to this topic

#1 Luca M Pryde

    Member

  • PipPipPipPipPipPip
  • Mercenary
  • Mercenary
  • 209 posts

Posted 26 November 2016 - 02:52 AM

Hi guys,

This is a question for the software developers out there. I am a software engineering student that has worked a bit but is lacking skills in the backend (Java, C++ or node.js).

This year I may decide to whenever I get/have free time to begin development of random programming projects.

The question is what technologies should I use.

My existing work experience is in JavaScript (Angular 1, jQuery), HTML, CSS at a previous job.

I have learnt Java at University but I consider that elemental knowledge which is starting to fade a bit. I did read it at my previous job but did not write much of it or any of it to a level where I would be writing features or even test code.

I have recently been programming in C for a Kinetis K70 embedded chip at University and will most likely have to learn about Real Time Operating Systems in Unix next semester. I found understanding the chip was way harder than the actual programming.

Should I spend my time learning and building a website from scratch from the DB, backend (Java or C++) to the front end (Angular 2). This would mean I should learn Java and/or node.js to build the web-server.

OR

Should I develop a really basic game components/plugins in C++ and learn how to use Unreal engine 4 or Unity engine or Cryengine 4 or 5 and develop my C++ skills further this way.

Keep in mind I am a student and cannot afford anything pretty much.

I am also based in Australia and independent (I pay my own rent barely). Obviously can't move to a job until my degree finishes which I will probably next year. But that is highly risky and I need to save up money first before considering moving out of Australia. I could work in Japan as my wife is Japanese.

I have the latest IntelliJ IDEA license but that is as far as I am willing to go unless a modern engine has a cheap one off payment.

What are my goals?
I am attempting to build a portfolio of work and build enough general skills in programming so I can work in either game development, telecommunications, medical or any industry.

Is building components in a gaming engine a good idea to learn C++ further and show it to any employer from any industry? I have never used a game engine before and I only know the basics of the C language and have not delved much into its libraries.

Would I be better of staying out of these industries and sticking with the web using Java, TypeScript, JavaScrip, HTML and CSS as that is what I have had experience with to date?

Any ideas or experiences are welcome. Whether you are from Australia or not. Very welcome if you have gone to Japan and have experience as a being a foreigner looking for work as an Australian (especially if you are not asian and worked in Japan).

Edited by Luca M Pryde, 26 November 2016 - 05:29 PM.


#2 Heffay

    Rum Runner

  • PipPipPipPipPipPipPipPipPipPip
  • The Referee
  • The Referee
  • 6,458 posts
  • LocationPHX

Posted 26 November 2016 - 12:28 PM

C# and .Net is a really powerful combination, and Visual Studio is a *fantastic* IDE that really makes things simple for you (once you learn the interface). Not to mention the HUGE amount of training and communities based around it. Not only that, it's really good for web programming. And as an added bonus, Unity uses C# for its scripting language (including access to .Net), and Cryengine 5 is supposed to be going to C# as well. The key is to poke around in it every single day.

Don't work in game development. Do game development as a hobby. The industry doesn't pay for ****, and you can make twice as much money for half the work in regular ol' corporate work. And nothing will suck the fun out of a hobby by having someone else tell you what to do and give you unrealistic timelines for it.

Getting a portfolio is key. I had a nice mid-life crisis where I went from IT Management (mostly in the server operations world) to wanting to become a developer, but since it was a hobby of mine I was able to show one of my better github projects as an example of my work. That was basically what sealed the deal. Find a passion project and either start it up from scratch, or find someone else who is doing it that you can contribute to. *cough cough cgf-exporter.exe cough* ;)

Feel free to ask more questions. Happy to help any way I can!

#3 Luca M Pryde

    Member

  • PipPipPipPipPipPip
  • Mercenary
  • Mercenary
  • 209 posts

Posted 26 November 2016 - 05:25 PM

View PostHeffay, on 26 November 2016 - 12:28 PM, said:


C# and .Net is a really powerful combination, and Visual Studio is a *fantastic* IDE that really makes things simple for you (once you learn the interface). Not to mention the HUGE amount of training and communities based around it. Not only that, it's really good for web programming. And as an added bonus, Unity uses C# for its scripting language (including access to .Net), and Cryengine 5 is supposed to be going to C# as well. The key is to poke around in it every single day.

Don't work in game development. Do game development as a hobby. The industry doesn't pay for ****, and you can make twice as much money for half the work in regular ol' corporate work. And nothing will suck the fun out of a hobby by having someone else tell you what to do and give you unrealistic timelines for it.

Getting a portfolio is key. I had a nice mid-life crisis where I went from IT Management (mostly in the server operations world) to wanting to become a developer, but since it was a hobby of mine I was able to show one of my better github projects as an example of my work. That was basically what sealed the deal. Find a passion project and either start it up from scratch, or find someone else who is doing it that you can contribute to. *cough cough cgf-exporter.exe cough* Posted Image

Feel free to ask more questions. Happy to help any way I can!


I have considered C# because in a way it is kinda stable (there is only one, no real competition from other libraries unlike Java) as a backend language but its mostly used with fintech companies. Since I may be working in telecommunications or with hardware (I highly doubt embedded) at a high level (as in code) I am not sure if I should be learning C++. Not sure who I will be working with next makes it difficult. My last employer was using Java. I probably shouldn't be concerned as I will always have to learn something new where ever I work but it would still be nice to have a head start.

From your knowledge is c++ widely used as a backend technology platform for web projects or has it mostly been ditched in favour of Java, node.js and c#? A quick google search suggests it not but that is not really a good indicator.

JavaScript is also used with Unity as a scripting language which is great.

I have used Visual Studio before, its pretty good although some of its assigned shortcuts keys are tragic. I think it was duplicating a line of required 2 actions instead of 1 which was a bit annoying. You could fix it with a macro but meh.

I'm not really considering game dev as a job (at least not yet and maybe never depending on where I work) because the initial learning curve is much steeper and will slow me down from getting a job. Also I do value my free time (games, reading, wife, family, friends).

#4 Heffay

    Rum Runner

  • PipPipPipPipPipPipPipPipPipPip
  • The Referee
  • The Referee
  • 6,458 posts
  • LocationPHX

Posted 26 November 2016 - 05:57 PM

There is plenty of work out there for java, C# and c++ programmers. c++ is more of a performance language, and with the focus more on the speed of development (fail faster), it might be taking a hit in the near future for opportunities. There will always be c++ jobs, and it does have its advantages (most mature language out there).

If you're going to do any web programming at all, you will learn javascript. Think of it as a side language you will develop no matter what focus you have.

Microsoft seems to be on an uptick right now, and that's from an avowed MS hater from the 90s-00s. They've made a lot of really good decisions over the past decade, especially focusing on developers. I'm pretty partial to their stuff right now, so take that into consideration with my advice. :)

#5 xengk

    Member

  • PipPipPipPipPipPipPipPipPip
  • Shredder
  • Shredder
  • 2,502 posts
  • LocationKuala Lumpur, Malaysia

Posted 28 November 2016 - 02:39 AM

View PostHeffay, on 26 November 2016 - 12:28 PM, said:

Don't work in game development. Do game development as a hobby. The industry doesn't pay for ****, and you can make twice as much money for half the work in regular ol' corporate work. And nothing will suck the fun out of a hobby by having someone else tell you what to do and give you unrealistic timelines for it.

As someone working in game dev/publishing line for a decade, I seconded that advice.
Don't do it unless you plan to be more than a code monkey.

#6 benben10

    Member

  • PipPipPip
  • 76 posts

Posted 30 November 2016 - 08:37 PM

I have a bad idea for you. It would be cool to see an enemy AI for Mechwarrior Living Legends even if it's a ****** one. I have been told it would have to be in C++. But like I said, I'm pretty sure this is a really bad idea.

#7 LordNothing

    Member

  • PipPipPipPipPipPipPipPipPipPipPipPip
  • Ace Of Spades
  • Ace Of Spades
  • 16,772 posts

Posted 01 December 2016 - 11:36 PM

i dont think i would do web dev. me i do love embedded programming, you dont have all the limitless resources to throw at problems and have to know whats going on in the silicon to get the most out of it. i also enjoy the hardware side of things, stick a chip you programmed on a board you designed and make something awesome.

game programming is fun and rewarding, if you want to make a game just grab any engine. but ive found myself more interested in the lower level systems involved. putting together your own engine could be a good place to start, you touch on almost every system the game uses and can learn a lot about how games tick that way.

#8 Unnatural Growth

    Member

  • PipPipPipPipPipPipPipPip
  • Bridesmaid
  • 1,055 posts

Posted 04 December 2016 - 09:00 AM

Not a specific answer to your questions, but more of a general piece of advice,

As an ancient and obsolete computer tech, who started off working on main frames (yeah, the real ones, took up whole buildings), IBM, DEC, Encore/Gould, HP, Honeywell, Perk and Elmer...

I would say, if you plan on staying in the industry for life, you will have to continuously learn, improve, strive to stay abreast of the newest languages/tech. Your "bread and butter" language of today, can be cast on the trash heap of tomorrow. This is from a guy that learned Assembler/machine code, Fortran, Cobal, RT, VMS, Binary (ever code in binary?) and a little bit of UNIX. Don't get settled in to any one corner and stay there, you will become obsolete and perish.

Keep improving yourself, keep learning new languages, stay in tune with industry news, stay subscribed to the better of the industry periodicals (whatever they are these days). Basically plan on never being done with school. Ever. I'm talking over your lifetime now, not over the next 5 years, but over the next 40 years.

You will get more stability if you work in infrastructure such as power grid management, or power generation plants, major refineries, large scale factories/mills, etc. But even there, expect change, it just happens slower and more methodically. And you can still be declared "obsolete" (happened to me) in those sectors if you don't constantly work to keep current and improve. Some of the better industry employers will still pay for additional education of their employees if you can tie it in to existing or future job related skills.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users