We definitely covered this in a past article, but in the words of my proctologist doing his 3 colonoscopy in 2 days, “It’s always good to check in…”. So, how does one go from average developer, to master code? What is the quickest way to having a deep understanding of code and software development … how do you develop deep coding skills?
Well…practice. And by practice we don’t mean doing tutorials or coding camp, etc. We mean putting on your speedo, inflating your water wings, getting on your swim goggles and jumping in the deep end like a real man…hehe. “Short answer is by actually building real projects. Don’t get caught up in the game of continuously doing tutorials, or code camps, or code competitions, or studying algorithms -that is not going to give you a deep understanding of code. The analogy I like to use is the ‘pad hitters’ and the people that actually jump in the ring and fight. This is in reference of course to martial arts…and you [have] a group of people who would just do training drills and combination drills, and pad hitting and heavy bag work, but they didn’t want to get in the ring…because they were scared. But when they eventually got in the ring (some of them do), what they discovered is all that pad hitting, all those types of exercises didn’t really do too much to prepare them for fighting -you can take someone whose done 6 months of pad hitting training vs. someone whose done 3 months of sparring, and the guy whose done 3 months of sparring will be a much better fighter: meaning they will have a much better understanding of fighting…”
Now, it’s very true that we simply could have used the martial arts metaphor instead of the imagery of a grown man putting on a speedo, water wings and goggles, and then jumping into the deep end of the pool (to gain their experience), but I say to you good sir or madam…why can’t we have both?
Check out the VLOG, it’s a nice and candid talk about experience and growth, plus a story about when Stef was a “JavaScript theoretical master”, and also a sweet, somber Montreal skyline to take us into autumn… -Enjoy!
How will a web developers job change over the next five years?
First off, If you’re a dev, a programmer, employed or freelance, or someone who generally doesn’t get to see the ‘light of day’ (or is a shut-in), you’re welcome… We are out and about today!! Also, if you were in the mood for Dim Sum and talked yourself out of it…sorry.
Today we’re contemplating how the web-stack will change over the next 5 years. What devs and programmers should expect in terms of changes to their jobs, and delicious Dim Sum…sorry, I’m really hungry now…
In General: “The languages that we see now are pretty much baked into the cake. I don’t see any new languages replacing any of the leaders now (PHP, JavaScript, Python, etc.), the reason is… simply because they’re very good, they’re all very productive, and with computers getting faster and faster, I don’t see where we would need more efficient languages or faster languages.”
Web Frameworks: Re: front-end frameworks, “…that’s more difficult to predict because web frameworks are more volatile. …My best guess -barring any new framework coming into the game/ some new disruptive technology- …I think you’re going to see React and Vue are going to be the dominant players, followed by Angular (but you can’t lose with any of them). This is a prime exmaple of why I always tell people to learn your fundamentals: frameworks change, libraries change, but the fundamentals don’t change.”
Complexities of Web Development: “Another thing you’re going to see …is the move more and more to the server. You’re seeing more and more sophisticated server tools that are pretty mind-blowing (from an old nerd’s prospective), [for example] virtualized database management: …instead of having to worry about charting your database and database optimizations, the advanced hosting companies -they provide that for you. They take care of that; scaling, auto-backups, all this kind of stuff that normally you would have to do yourself -you’d have to work it into the development cycle- not anymore! And you’re going to see more and more of this offloading of complexity in terms of application design and architecture…onto sophisticated hosting solutions. …So that’s another you’re going to see, that obfuscation of the complexity -and that’s a good thing.”
Closing Thoughts: “I think it’s going to shift from day to day ‘nuts and bolts’ type of coding, and going to go more towards architectural. Now what people use is a content management system; the most popular being WordPress. Which has given rise to the ‘WordPress Professional’, …[they] know how to install, configure WordPress, know the environment -the ecosystem around WordPress: know what the good themes are, the bad themes, the good plugins, the bad plugins, how to install and debug, how to lockdown and secure WordPress -there’s a whole skill set. Now you don’t necessarily need to be a coder, but having coding skills does help…and you can’t discount these type of skills… It’s very little about code but you gotta really know your stuff. …And this is a trend that been going on for awhile; this move away from nuts and bolts’ coding, to being someone who leverages different libraries and frameworks and understands how to use them/when to use them, and what circumstances to use them.”
So there you have it. The VLOG really goes into a much deeper and detailed dive, you should check it out. Also, speaking of fundamentals -SHAMELESSS PROMO- check out our links (below) to various courses we offer, particularly web development. It’s super effective. As for your job; it doesn’t mean coding is going to go away, just that there will be a shift. Again, know your fundamentals and you can’t go wrong. “A little less code, a little more architecture…and Dim Sum…always leave room for Dim Sum…so hungry!!! -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!
Will AI replace software developers in a short time?
For those of you keeping score at home we actually dove into this a year ago, but since a newly published Forbes article has pointed out some advancements in AI learning, we’d like to comment on the, ‘next step towards Skynet’.
So in the interest of calming your fears, we’re going to heighten them -only for a little while, I promise! But essentially, “… AI has really accelerated quite a bit over the last ten years, and they’re saying it’s about to go into a hyper-accelerated wave…”. There are very understandable reasons for this: 1- I Got the Power!: From a purely material stance, specialized AI chip sets have greatly increased their computing power. 2- We’re Feeding the Beast: For AI to work, it needs data, “…so the nerds came up with these things called data lakes -where all the data is pooled- so you can throw your AI at it and the AI can learn. The more data, the better the data -the better the data is segmented- , the better your AI will operate.” 3- Smarter, Faster: The AI algorithms are just getting better.
The latest application of AI has been the ‘Tab9‘ project wherein, “…a couple of guys basically took their AI, pointed it at 2 million github files and now they have a plugin…and the AI can do code completion much more effectively than traditional code completion”. But don’t start stocking up on canned food and making plans to reinforce your basement just yet, because now that we’ve whipped you into a frothing mass of fear and foreboding, we’re going to calmly bring you back down to the serene, put together, and well mannered developer you are…
The Road is Long… We’re not going to lie to you; AI is a growing technology and everyday new applications are being found. But that doesn’t mean that AI will be taking your job anytime soon. “…they’re not replacing developers, they’re [AI] just assisting developers in [their] process.” However, we can’t say with great certainty that everyone else’s job is safe; “…long before AI replaces software development, it’s going to replace truckers, replace accountants, many legal jobs, many medical jobs -you get the idea… .” But just in case you’re not a programmer and you’re reading this blog and feeling a little ‘tight’ in the chest, let us offer you an olive branch; “…before it gets to developers, AI will have replaced huge parts of industry, and as a result of that, …the entire infrastructure of society will have to be modified accordingly -so I wouldn’t worry about it because there’ll be warning sign years in advance before developers will be taken out by AI.”
The VLOG goes into way more detail and some more sweet scenery of the MTL skyline. Plus, we’ve teamed up with InMotion hosting for a really amazing offer where they pay for you to take our courses and learn how to become a web developer. Link below. -Enjoy!
Vue.js, React and Angular are the big three JavaScript frameworks. But which one is the best in 2019?
There are many JavaScript frameworks out there but Vue.js, React, and Angular are easily (though, I guess also arguably) the top three. All three have their strengths and uses, but if you want to find the best one for your needs, let’s look at a brief overview (more details in this VLOG and way more in the article).
Before we get started, this is the article we are …framing?… our references around, and full transparency: we use Vue.js (henceforth called ‘Vue’) for our needs with StudioWeb. Here we go:
Angular: Developed by Google in 2010 (making it easily the most mature), this behemoth (500kb) is more in the realm of big projects with ‘advanced developers’. “Angular is basically positioned for larger projects. There’s a much steeper learning curve with Angular, …it’s a very powerful framework.” Another feature of Angular is that, “it separates out the logic from the application/the behavior of an element and the element itself is separate.” So while you would be gaining flexibility with Angular, you might be sacrificing a certain amount of simplicity that you would get with the other frameworks..
React: Developed by Facebook in 2013 this slimmer framework (100kb), offer way more simplicity than Angular (at the cost of some flexibility) and has an equal market share with Angular. This Framework tends to be adopted by more flexible small-medium sized companies.
Vue: Open source-developed, holding approximately 20% of the market share (and growing), weighing in at about 80kb (soaking wet), we have the staple of most start-up/small businesses: Vue. Boasting an easy, practically non-existent learning curve, Vue is the compromise between flexibility and simplicity.
So what’s the best option for you? Well, all these frameworks have their strengths and weaknesses, and they’re all used by many companies, businesses, and corporations, so they’re not going to vanish anytime soon… I guess it all comes down to what you want to do… Want to work for a big corporation? Angular. Spunky start-up with a can do attitude? Probably Vue. We really want to stress that one framework is not better than the other, they just offer different options, benefits, and drawbacks.
Check out the VLOG for a deeper dive into the pros/cons and features of all three frameworks, and remember, “…your choice of framework -of any technology- largely depends on the type of work you wanna do, the job market, a personal choice… there’s no language that is ultimately best, …no framework that is ultimately worse; it really depends on what you want to do.” -Enjoy!
All jokes of ominous soothsaying and portents aside, Oracle has released Java 13 with a promise of updates every six months. This is kind of a big deal because they are famous for releasing updates every 3 years, up until about 2017…
This article goes into more detail and provides a little historical content too, but let’s focus on a few things; mainly two new features:
Text Block: “The Text Blocks feature is designed to simplify writing Java programs by easily expressing strings that span several lines of source code without escape sequences.”*
There is the caveat that these are ‘preview features’, which means they may be removed in the future at some point or not, but this coupled with other improvements has given Oracle the image of coming out of the gate swinging.
Which brings us to the big question, should you learn Java in 2019? “Why not, you can’t lose. If you want to get jobs in the enterprise/android development, Java is going to be good for a long time. …And if for some reason an asteroid hits the earth and Java starts tanking in terms of popularity, you will have the [nerd] background to be able to move to any language you want.” This of course referring to the fact that Java is one of those big languages that has inspired so many other languages after it, and as such has many roots (for lack of a better term), in so many other languages that learning those other languages when you have a competent understanding of Java makes it so much easier. “…Java teaches you all these different concepts, best coding practices and so forth, which carries over 102% into any other language.”
The Vlog goes into some more detail and is worth a look. Plus, we’ve teamed up with InMotion hosting for a really amazing offer where they pay for you to take our courses and learn how to become a web developer. Links to all these offers are below. -Enjoy!
*: To quote Liam Tung’s ZDnet article (link above).
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!
You just landed your first job as a programmer or a dev… Congratulations! Now how do you keep that job? We gotcha. First, read this. That’s a lot to remember, are you freaking out? No problem. All you really need to do is remember step 1 or (for those of you that didn’t read it):
Communication. “Communicate; listen, that’s a big part of it. …Being somebody they can count on, somebody that gets along, somebody that they can speak to is a huge part of the job. …Just work with people, listen, and that is like 90% of it.” -also- Don’t ask Google-able questions. “…If you find that you’re having difficulty, don’t be afraid to ask questions …short, concise questions -don’t ask super long-winded questions- keep it pithy/to the point… …[And] don’t ask too many questions -especially questions that you could research on Google (ultimately they’re hiring you to get the job done).” But stuff happens, for example, “…there could be some design issues, there could be some specifics with regards to their particular software…hopefully they’ll be able to provide that [answers] for you…” -and- The ‘Ramp-up’. It doesn’t matter if you’re a fresh-faced noob or a grizzled old veteran programmer, no one with brain in their skull expects you to get things right outta the gate. There’s a ‘ramp-up’: “When they first bring you in there’s going to be some expectation of a ‘ramp-up’ time. You’re not going to know everything …if they have an advanced piece of software, …you’re going to have to get to know the code base, and that could take time depending on the complexity of the software. It’s not your code, you’re going to have to learn it. And in your first little while go out of your way to make sure you try as quickly as possible to learn the code -don’t kill yourself; don’t get all sweaty and nervous about it- …but ask your coworker, your lead. ‘what do I need to do first so I can get up to speed and help you guys?’ “.
After that, it’s like any other job, “…be sure to double-check your work: make sure you don’t make any silly mistakes, …if you’re assigned to a task, make sure you get things done on time, …and hopefully you didn’t lie on your resume and say you were a ‘master nerd’, cuz they’re going to figure you out pretty quickly…”.
Check out the VLOG for some really good advice and <Shameless Promo> generally speaking, if you’ve taken the web stack course, you might find yourself ahead of the game as many people found out once they got the job… -Enjoy!