Getting into game programming with C# or C++ and talking about the realities…
So, should you learn C++ and C# to get into game programming? Well, as we’ve explained many times on this BLOG and the VLOG, “learning programming and how to code, regardless of the language, makes no difference really in the end, because if you learn language “A” and you realize there no jobs there, you have the opportunity to quickly and easily go to language “B”, “C”, “D”, or “E” -it isn’t a big deal. The only time you shouldn’t be concentrating on a programming language of course, is RUBY…” <BOOM!!> RUBY joke [gotta have at least one, where we can]. “…yeah, even RUBY, there’s lots of work out there for RUBY developers: Rails. And even if you end up not using RUBY, you’ll probably end up learning Python, and knowing RUBY will make learning Python pretty easy.”
But with that out of the way, let’s talk about ‘fun’ and what is ‘perceived as fun‘. “Any industry -any type of job that people perceive as fun- it will drive up competition -because a lot more people are going to be involved, and then employers know that it’s perceived as fun, so they’re going to be able to adjust their work environment -meaning it could be tougher and lower to pay- this is not uncommon, it’s not just with programming, it’s with any industry. If you look at the film industry for example: actors will be in there 10 hour days, 18 hour days and unless you’re a star you’re not making anything -it could be rough. On the flip side, you look at professions like plumber, which is perceived as ‘dirty work‘, because it’s not perceived as glamorous and fun plumbers make a ton of money.” If you don’t believe us (the game industry thing, not the plumbing), google ‘EA workers’, or even just general ‘video game industry workers horror stories’. We’re not trying to steer you away from the video game industry, far from it (someone is going to need to make Borderlands 10: the border-lands-ening, and it’s not going to be me), but like anything else, do your research and ask yourself if this is what you really want to get into. The extreme stories are not the norm by any stretch, but they’re not far off and you should prepare yourself for their eventuality…
The VLOG is worth a little ‘eye validation’, and there’s some sweet MTL scenery at the end. Whatever your dream, keep it alive but don’t get taken advantage of for having it! -Enjoy!
Young developers are hyper concerned about learning the newest programming languages and frameworks only … but the most popular languages today are 20+ years old!
Alright yung’uns, gather ’round the fire… I know, everyone has indoor heating and there’s no need for fires anymore but this is gonna help with the over all ‘flavor’ for this blog…
Many you young devs are focusing on the shiniest, newest programming languages and frameworks, and while I salute your moxi, your gusto, heck; even your gumption… I’m here to tell ya, that there’s a difference between new and popular. I know when you’re listening to your CardiB’s and your Lizzo’s, you may not see a distinction but in the programming world, lemme tell ya, bucko, there is definitely a difference…
“…For a long, long time -like 10/20 years- especially when it came to the web stack, the technology changed so often…websites and web apps…it has changed so radically.” Now, as I understand with you yung’uns, 10 or 20 years ago might as well be 100 years ago but, “…when it comes to the actual programming languages (the popular ones that are used to date), …they are pretty much entrenched. I think you’re not going to see a big move away from the major players over the next long time. Why? There’s just no need to. Now in the past you would create a programming language because there was a particular need that was very important, but it was not addressed by current languages.”
Also, over the years as computers have become markedly faster (CPUs and memory both have become faster and cheaper), the need for highly optimized programming languages have become arguably less and less important, because a human eyeball won’t necessarily notice execution speed on most modern computers because they process that information much more efficiently than a computer from 10 or 20 years ago.
The VLOG goes into waayyy more detail, we’re talking SQLs, Bootstrap, even RUBY (and only an inkling of an insult too). But, “when it comes to the major programming [and coding] languages of today, not much has changed in many years. …On the advanced stuff yeah, but in terms of language, not much has changed. …When you’re looking at the languages, at the technology, it’s not as critical to have stuff that was created in the last two minutes. The big ones [programming languages] they’re not going anywhere because they’re good, they’re good at what they do and the problems they may have can be addressed with some small updates, and they just keep getting more performance with the updates…”. Now, it’s almost 4pm so you better git gone and think about what I’ve said while I get ready to sit down to my dinner… -Enjoy!
Is Java easy to learn or am I just not good at programming?
First of all, I think we can all agree: Awwww, muffin, no! Second, “99% of the time, when you’re running into problems…learning a programming language -especially Java- it’s normal for everybody and 99% of the time you just have to give yourself some time and a chance.”
Let’s look at some potential hurdles: 1- The beginning is always the hardest: I think this applies to almost everything in the human experience, but even more so with all things programming/coding. “…What you have to essentially do is literally train your brain to think and process information in a totally different way.” Of course there’s going to be mistakes, and you may not understand everything, but press on and it will eventually ‘click’; and things will fall into place. 2- Pace yourself: You will learn infinitely more by committing yourself to 20 minutes a day vs. a 5 hour burnout-a-thon. “You should write at least 20 minutes of code a day, even if you don’t understand the code -make errors, break it, fuss around with it, etc- you gotta get through that initial hurdle where you don’t understand …Once you do, the whole world opens up to you and it becomes much easier.” 3- Things take time/Rest period: To assimilate the knowledge you’ve gathered, you need rest. Your brain needs time to ‘frame’ that knowledge (for lack of a better term). We need only turn to that modern day renaissance man, Arnold Schwarzenegger for advice… “I saw a video recently asking him about training, …and he said… the thing you shouldn’t do is over-train. Same thing with learning code.” Bottom line: rest is as important as learning. 4- <Optional/Caution> Consider your teacher: This is a bit murky and we advise serious caution here, but, “a lot of these coding boot camps are taught by people who don’t know how to teach. It’s just the facts: teaching is a skill, it’s a talent -people go to school for years to learn how to teach…”. If you’re seriously feeling like the material is out of your ‘grasp’, that might be the answer. Please exercise caution, though… 5- Consider the material/Baby steps: We’ve heard the old adage, ‘walk before you run’. Walking is an easier thing to learn, which then lends itself really well (synergistically) to learning to run. By the same token, “…Java is not the first [choice to learn], in my opinion, as a programming language. Why? Because Java; though it’s a powerful language, that power comes with complexity -there’s a lot of things you have to account for when you’re writing Java code that you don’t have to account for if you’re writing Python or JavaScript, PHP or even RUBY [there you go, RUBY!]”. There are other easier languages to learn that later lend themselves well (again, synergy) to learning Java. Baby steps…
So there you have it. The VLOG goes into way more detail, including listing some of the easier, more synergistic languages to learn instead of the ‘Java jump’. Also, and I hate to do this but <Shameless Self Promotion>, we offer courses that take advantage of both coding experience AND teaching experience every step of the way. Check it out (links at the bottom).
The thing to remember is you’re not stupid, sometimes you just need to take it easy on yourself, give yourself a break, and be patient. Enjoy more sweet scenery of MTL at the end of this VLOG… Ye gods! Just look at all that green in the background. -Enjoy!
There is no better teacher of software development than the long term experience of building and refining a commercial app used by countless users.
As we get older we have friends who get married and have children. Sometimes while hanging out, maybe while having drinks or dinner, you might ask them how parenthood is going or (heavens forbid), you let it slip that you can’t wait to have children yourself, that it would be ‘fun’… Then you get to watch their brows furrow and the mood get very somber (did the lights suddenly dim in here? Did it get colder?!), and with a gaze that seems to penetrate your very soul they say in a foreboding voice, ‘YOU.HAVE.NO.IDEA.’. That somehow the scope and challenge of raising children is completely out your experience and in the abstract and ethereal, and one can never hope to grasp it until they are waist deep in it… Wow, that got ranty real fast…
Well, we’re going to make a statement that might put us in the same category as those pretentious parents but unlike those parents, we do it with love and encouragement…but we will dim the lights for dramatic effect… “You don’t really know app development until you’ve developed an app, taken it to market, gotten feedback, refactored/refined, and then made money with that app, or at least been part of a team that’s gone through that process where you’ve seen the app go from inception to actual functional use with the end user.” I know, for some of you ‘thems fightin’ words‘, but what we mean is that version 1 of your app, is not going to be the end – far from it in fact. A lot of (young) developers [devs] coming up are under the assumption that if they write the ‘perfect’ code, that the app will be perfect and there will be no need for a version 2, 3 or even 4. “…You have to expect that when you become a professional developer, that you’re going to go through many iterations…”. There is a purely academic idea that has been making the rounds lately in articles and even some YouTube videos about the “purity of code” or “purity of implementation”, and when you’re making commercial software, it’s just not the case.
The VLOG goes into waaaaayyyyy more robust detail, stemming from over 3 decades of experience in the business (which is like 269 years in young dev time), but what we really want you to know is, with regards to your app: (A) – Don’t worry about making mistakes (B) – Don’t expect that your first iteration of your code and your software is going to be perfect –it will never be perfect. so “…get your app out quickly (within reason, of course), don’t waste your time with perfect implementation.” Also, bonus material: We make fun of RUBY a lot. But at the end of the Vlog is a sort of postmortem theorizing -from a reliable source- why RUBY lost out on a huge share of the market. Plus, some sweet aerial scenery of MTL. -Enjoy!
How many hours a day should you spend learning code?
‘Eager beavers’ everywhere! Whether it be the gym, sweet/salty snacks, continuing education, or becoming the best damn Fortnite player in history, most of us tend to go ‘hard and fast’: that is to say we try to absorb as much as we can in as little time as we can. The result: We end up ‘burning out’ real bad and probably never want to return to the thing that hurt us so bad…at least for awhile. We’ve all been there, we want to do, learn, or be something so bad that we end of ‘OD’ing’ (over-dosing) on it. And this is especially true with learning; remember the all night ‘cram’ sessions before big exams when you were younger? Add to that the fact that you’re learning a new skill like coding, which sometimes is not as intuitive as you’re used to things being, and you could ‘burn out’ before your first session is done!
So how many hours a day should you spend learning to code? “If you’re first starting out, you should maybe limit it to 30-45 minutes a day. Whenever you start getting into code for the first time, you’re literally going to be re-wiring your brain physically …you’re going to be learning to think and process information in a totally different way.”
What’s really cool about this is learning in different ways is that it makes your brain ‘stronger’. Much like physically training with different exercises, disciplines, and sports makes your body stronger and more adaptable to different stresses and pressures, learning/thinking and reasoning in different ways re-wires the brain to be ‘fit’ (for lack of a better word) and more adaptable to different situations. And I don’t know about you guys, but as I get older and more set in my ways, the need for an agile mind is more and more necessary.
Always leave’em wanting more It’s an old vaudevillian/performer’s adage. It means don’t go overboard when entertaining/performing. Always leave your audience wanting more so they will return, buy more tickets and (more importantly), they’ll want to be there. Very apt and very applicable to learning, “you should leave your daily learning session (encoding) wanting more, not exhausted. You wanna leave it and go, ‘this is cool’ …you want to create an association that’s positive, that’s fun with coding…”.
The VLOG really goes into more detail about this, while adding a psychological angle to it …and what would a good VLOG be without a RUBY slam (there’s more than one!), BOOM! Also, check out our courses for coding, freelancing or entrepreneurship <links below>. They have been built from the ground up with this very principle in mind! Remember when you’re starting out be kind to yourself, take it slow and easy, and have fun so you’ll want to come back. Whether it’s learning a new skill or anything else in life, it’s just a good ‘code’ to have… -Enjoy!
The state of the ‘developer ecosystem’ in 2019 by software development company of note: JetBrains.
In the beginning of 2019, JetBrains -a software company whose tools are geared towards software developers and project managers- polled almost 7,000 developers to identify the State of the ‘developer ecosystem’. The resulting article can be found here, in all its glory, but we thought we’d break it down for ya and give you some of our thoughts…
-Java is the most popular language. “Most developers will use multiple languages, so …it’s kinda silly to get caught up in what’s the most [popular].
-JavaScript is the most used overall language. “That makes sense because JavaScript’s in the web browser, if you’re doing React, Angular, if you’re doing a basic website, you’re going to be using JavaScript.”
-‘Go’ is the most promising programming language. “I would put ‘Go’ on a ‘perhaps to learn’ list. …The top languages to learn are HTML, CSS, JavaScript, Python…”.
-TL;DR.“One thing that you see across all the surveys, that JavaScript, Java, Python, HTML, CSS … SQL, these are all coding languages and in some cases programming languages that are always at the top or near the top of the stack. And another takeaway that were on all the surveys is that the web stack is still by far dominant.”
The VLOG goes into more detail, with more educated extrapolations and a sweet scenic boat or canoe ride. -Enjoy!
We make fun of Ruby a lot here: 1. because it’s fun and 2. … …okay, it’s just fun really, but a question did come up recently from an individual who was offered a job working with Ruby on Rails. They come from a PHP – Laravel background and while they don’t know how to use Ruby, per se, their potential employer also offered to pay them while they learn it. So the question was do they take the job knowing that the use of Ruby on Rails has diminished or should they look for something else?
Now Ruby aside, we’d like to answer this question in general terms if you ever find yourself in a situation like this and you’re on the fence… “If you don’t have other work and the job is high paying, why not? …A language or framework does not define you as a programmer… you [just] happen to be using those tools at that particular time”. Now, specifically regarding Ruby jobs: “…it’s not gonna disappear over night and in fact we’ll probably see Ruby development for the next five years, at least, so …you do that for one year, two years, 3 years; what have you…”
Another question we’ve been getting recently is if Java is dead? With Google making the switch to Kotlin for app development and Oracle charging for Java licensing, what will be happening to Java jobs? “Does that mean the whole Java-Android development is going to collapse overnight? Probably not: it won’t, it’ll probably take a couple of years.” That being said, “if you’re writing code for your android app using Java, you’ll be able to transition into Kotlin very, very quickly.”
Check out the VLOG for a more sensible and detailed answers to these questions, and remember, “you cannot lose learning any programming language.” -Enjoy!
What are the top 10 programming (and coding) languages do employers want?
According to job listings on indeed.com as of may 16, 2019, we have the top 10 programming and coding languages that will get you hired. That’s right, sometimes the languages you enjoy and frequently use or swear by may not necessarily get you hired, but if you have experience with any of these top ten, you’ll have a job…at least until the end of 2019.
So what are the top ten, you ask? Well, if you’ve been following the VLOG, it’s not really a surprise… 1. Java 2. SQL 3. JavaScript 4. Python 5. HTML 6. CSS 7. C# 8. C++ 9. Ruby 10. PHP Bonus tip: While Java is at the top and you’ll have work for decades with it, Google has announced that they will be using Kotlin (while still offering support for Java) going forward. So, if app development for Android is your thing, ya might wanna look into that.
The VLOG goes into way better detail regarding the rankings, and of course, what would a VLOG be without some nice shots at Ruby for the #9 ranking! -Enjoy!
JavaScript needs no introduction… even a quick google search will give you all you need to know. But at one time JS had a rival, a new kid on the block and it was called CoffeeScript (You can google it if you want but don’t bother…). “A few years back people were like ‘oohhh, CoffeeScript!’, the hipster nerds were, ‘Ooooh, CoffeeScript runs faster than JS, it’s better – you gotta use CoffeeScript!’.” And the sad thing was CoffeeScript did have some advantages and was actually slightly faster than JS but, “Rule of thumb: when you have a technology, whether it be a programming language or framework but it’s extremely dominant in the marketplace, for it to be replaced there would literally have to be some paradigm shift for that to happen. It is very very rare that you see a very established technology replaced by something that’s maybe 20% or 30% better…It has to be 5 times better! …or more.”
“Now CoffeeScript was faster blah blah blah, JS was so dominant that all JS people had to do was come in with es6, which is the latest version of JS…and CoffeeScript is now {indicates ‘thumbs down’ motion and ‘failure’ sound effect}…no more.”
This falls into something we talked about herenot too long ago, called ‘the shiny tech trap’, which is abandoning more mature/tried and true/old technology for something that’s brand-spanking new and purports to do things slightly faster and better. Unless it’s a HUGE leap forward the absolutely changes everything for the better, it’s generally not going to happen…
Take a sip of the steaming-hot cuppa VLOG to really get a sense of what we’re talking about and as a bonus, we talk about RUBY but not in a terrible way…I mean not a great way, but not terrible. Check it out. -Enjoy!
The belief that the cutting edge tech must be the tech you use in your projects.
You may have heard your dad or your grandpa say something pretty close to this while grumbling about cars, phones or television sets; and that’s ‘shiny and new isn’t always better’. “As beginners you hear about this new technology is so great, that new technology is so great, etc, etc, and you can get overwhelmed and caught up with all this. …It’s chasing the illusion of perfection.”
And no demographic is more vulnerable to this illusion than young developers. For ease (and fun) let’s refer to this demographic as “noob” developers. “…[Noob] developers will chase perfection in their application development looking for ‘the better language’, or ‘the better framework’.” No only is this a waste of precious time but also a brisk jaunt into the realm of madness. “Don’t get me wrong, there are frameworks that are more ‘mature’ [or] ‘better’ than other frameworks given the application that you want to build. [For example]…If you’re building an AI based system, you’re not gonna wanna do that with PHP…you could…people have done machine learning with PHP – I wouldn’t do it – no, no you do PYTHON because that’s where all the action is, that’s where the market share is: that’s where it’s ‘mature’. …[But] you’ll find that any of the prominent frameworks and languages out there today…they’re going to produce good work…whether the app is good or not is up to you.”
Break your foot off on this VLOG for a very in-depth (and tangent-filled) dive into the “new tech trap” and remember, “in general all these frameworks and languages have pros and cons and everything looks greener on the other side of the fence until you get there.” -Enjoy.