I think we’ve all seen a film where the heroes are trapped in some room and the walls are closing in, threatening to crush them, or the room’s defenses are activated and lasers are shooting at them while they’re pinned down in cover, or desperately trying to dodge the blasts. What do the heroes do? Well, they call out to the “techie” person of the group, who’s usually in another room, watching from a monitor, and scream at him or her (usually him) for help. And this person goes to work on a keyboard and we see a window open up on screen with code on it, and they do some quick (non-nonsensical) typing, and the room’s traps/defenses either shut down or turn on the bad guys and take them out. No, I’m not trying to sell you my screenplay, I want to bring this up because when we see this, we think to ourselves, ‘That’s badass! To just hit a few keys on a computer and Boom! I just saved the day. I wanna do that…’ But then our brain automatically switches to thoughts of mountainous, thick textbooks with titles like, ‘Super nerd calculus-programming’, or ‘Say goodbye to your social life, nerd! Volume II’. And we think that we could never be this studious person, this soul of near-cosmic understanding of numbers, formulae, and ‘the maths’. We can’t see ourselves as this hero…
Well, we’re here to tell you that nothing could be further from the truth. “Coding is not that difficult to learn. Why then is there this major misconception about how difficult coding is?” The reason may not surprise you, if you’re a parent putting their kid through high school, or a kid in high school who’s hating physics or chemistry right now: teachers. “Most of the code courses out there are put out…[by] people who have no business trying to put out courses on code, because they simply do not know how to teach. …I would say if you tried to learn to code and you weren’t able to do it; you found it too difficult, too hard, I’d say there’s a 95% chance that it’s not you, it’s the bloody course.”
Now, we’re not saying this applies to all courses, and FULL TRANSPARENCY: We do offer coding courses, but this isn’t about that. You don’t have to buy our stuff, we’re not pushing that on you (there will be links down below, but there always were -nothing has changed there). The real reason is, “it leaves people with a bad taste in their mouth…because they’re not getting trained properly [and], they’re throwing you off of something that you could actually do.”
Check out the VLOG for a way more in depth dive into the subject, including the difference between courses and tutorials (which is what a majority of the all the so-called courses you get sold are), and on a lighter note, find out how good Stef was at grade 10 math (hint: not very). If January is already getting you down, check out the awesome beach and boats scenery towards the end of the VLOG, and if you have or know someone who you think is a great teacher, take 5 minutes and let them know you appreciate their efforts, it’s nice to hear.
What lessons do 25 years of coding impart? Harken younglings! The wisdom drawn from the ancient past.
First things first; Thank you Blizzard for not suing us. This title is really a testament to the enduring warmth of the characters you have created. And wouldn’t it be lovely if a young programmer eventually found their way to work for you because of a this blog…?
Alright, onto the imparting… is everyone still harkening? Great.
1. You will learn much more when you start getting paid to code: So among the new programmers or people just learning to program/code, there’s this idea that you need to show up with a full and infallible knowledge right out of the gate. “That’s why you see people get caught up in all these tutorials, because they’re insecure about their level of skill, so they keep doing more tutorials, more tutorials, more tutorials… Real world coding is about learning as you go -especially in the first 3-5 years as a software developer.” Now just so you don’t think that it’s all hand-holding and singing bible hymns around a campfire, “One of the number one skills of a good developer, by the way, is that they’re able to learn quickly.” So, while you are completely allowed to make mistakes and correct them, depending on where you work, you will be expected to pick up certain skills in an ‘amount’ of time…
2. The best code is simple code: If you’ve been following the VLOG or BLOG, you know that we bring this up every 2 or 3 posts, but it is important. No one cares about your flashy hijinx because, “The best developers write simple code. Why? Because code has to be updated a lot of times, especially in a valuable concept, and if you have complex code then that’s going to be a nightmare to maintain, very expensive to maintain and more prone to to bugs. So strive to write simple code.” Think of it this way, if you came onto project and were asked to update someone else’s work, wouldn’t you want to see simple and easy to read code? Not only is it professional, but think of it as a courtesy…
3. Coding real world apps is an iterative process: No one writes perfect, untouchable code in one sitting. Be prepared to do a few passes. Things change and things need updating. “Every time you do a pass, you refine the quality of the code. So that’s why when you develop your app (alpha), you want to get the whole working app out the door as quickly as possible: fully functional …because that way even if you’ve got parts of it really written badly, having that fully functional app (even if it’s crippled), it gives you insight into what the app ultimately should be.” In the beginning (the alpha stages), you really have only a limited idea of what the project should be, or how it will come together. “When you are writing code, you wanna get from A to Z -get the whole thing functional- then you start refining it, refining it. As you learn about the use case (how the app should be used/structured), then you can start writing more solid code. [The idea being] that with each pass the quality of the software will improve.”
4. Nobody wants to write good docs[documentation], but they should: This should be a ‘no-brainer’, let’s say you’re taking a class, you’ve shown up all semester and done all the in-class assignments. Then the test rolls around and you open your note book to look at your notes and there’s either nothing there or just drawings of sweet-ass guitars on fire, descending from the heavens for you to grab while you’re riding your red dragon into battle…(you know, non-specific stuff, that I totally didn’t draw in high school physics). It’s arguable that you are going to be screwed for the test ahead, and that’s how we feel about documentation. “Good documentation is huge because it will help you remember why you made certain architectural decisions in the code, and will help you transfer the knowledge to the next set of people who might get on the project. So if you have software that’s going to be successful in anyway, you wanna have good documentation -it’s just so important in terms of the quality of the project.”
So there it is young warriors, check out the VLOG where you can get this knowledge straight from the wizard’s mouth, plus more in depth ramblings…ah…epiphanies…yeah… . If you’re interested in learning more, please check out the links down below to our courses in web development, learning Python, or even freelancing, and entrepreneurship. They also make a great gift for that someone on the fence that just needs a little nudge. Fight the good fight and keep that code clean and simple. -Enjoy!
Contrary to what the title would suggest, we’re not trying to pit software developers against programmers in an all out brawl to the death in a post-apocalyptic forum for our amusement… *mental note for the end of the world*
No, what we’re presenting here is the subtle and (sometimes) not so subtle differences between the jobs, tasks, and expectations of these careers so that you can know what’s right (or interesting) for you when thinking about which path you may want to take.
We will also mention the role of architect and scriptor but the VLOG itself will go into way more detail about these jobs. Also, be ready for some shameless promotion because this is pretty much our milieu (area of expertise) here, and our courses reflect that.
Before we get started, I just want to point out that we are speaking in generalities, and yes, it’s quite possible that the position in your company or your freelancing gig has you filling different roles. These jobs can be quite fluid and we are only going to speak to what’s generally expected of you in these roles…
“A software developer is someone who is able to create entire systems, while a programmer (can also be a software developer), [but more likely], is someone who just writes code and can write programs. A software developer would develop an entire web app from scratch, would be able to design all the different layers, etc. … A software developer [in a nutshell] is a very experienced programmer… A lot of very experienced programmers never become software developers because they don’t go to that level, they work on very specific things here and there and they don’t develop entire architectures.”
A scriptor is someone who writes very simple lines of programming code. Little bits of Python code to automate software, a lot software out there (video rendering engines, etc) they’ll use Python to control how the software operates (batch operations, etc.), and that’s traditionally someone you would call a scriptor, because they’re writing little scripts (short pieces of code). And there’s a lot of demand for that as well!”
Software architects are quite literally architects of the software. They may not have time to do the task of the software developers, programmers, or scriptors, but they take care of the overall, top-down structure. For example, they could pick the languages, the frameworks, they get into the nitty-gritty with the lead developer, going over the best way to tackle situations/problems. Look, if you’re a software developer, and once a week (or more) you have a meeting with someone who you bring problems to, or someone who points you in certain directions or chooses the very foundational cores from which you work in…chances are they’re the architect.
So there you have it. Again, the VLOG goes into way more detail, we recommend you check it out. And no matter what you choose to be, check out our courses because they are made to give you the tools to see the bigger picture, which is always good. Believe me, you want to be overqualified for your job, people notice that and usually want to put you in a better position…or just pay you more money. -Enjoy!
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?
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.”
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!
A response to a recent video I made about people who are constantly doing tutorials instead of getting jobs.
If you’d like to see the first installment, click here, but in the spirit of ‘doing‘ we’re moving on! Sometimes we over prepare, guys, it happens. You’re so focused on making a big splash right outta the gate. You don’t want to be blindsided by anything and look like you don’t know what you’re talking about or look like a noob, so you prepare -you take tutorials and then you start thinking to yourself, ‘what if this happens? what if that happens?’ and you start doing more tutorials to be prepared for those things and before you know it, the fear of failure has you stuck. Instead of coming out of the gate; swinging, the gate flings open and you stand there paralyzed, not daring to move.
“It’s just fear: you don’t want to get into it… Just jump into it! Trust me, you’ll learn so much more by just jumping into a gig. Once you have your foundations down, do one or two tutorials and then do a gig and figure out how to get it done as you go. That’s how I did it, that’s how all developers started out.”
The VLOG goes into better detail, including the first full-stack gig that Stef took with no prior knowledge of it. Check out our courses (links below), if you’re interested – they are amazing – and remember, <I’m plagiarizing> A journey of a thousand miles starts with one step. Or think of the immortal words of Shia LaBoeuf and, “just DO it!!!!!” -Enjoy!
Is using developer tutorials cheating? Or are they the steps you need to take to move from beginner to advanced developer?
Imitation is the sincerest form of flattery…and in some cases, it’s also the quickest way to a lawsuit. Beginner devs are often cautious (and quite rightly so) when looking at someone else’s work/tutorial and wonder if making something similar is ‘cheating’?
Generally speaking, “it’s not cheating. Everything that you see in this world, whether it be software development, music, martial arts -whatever, it’s all based on other people’s work.” Some would even argue that’s how things evolve and get better; by different people messing around and riffing on the same idea. BUT, let’s clarify that, “if you’re stealing it; line for line, that’s bad -it’s illegal and it’s immoral. But if you’re learning how to do something…it’s not cheating to do a tutorial and then based off of that tutorial, you build your own app.” Of course, please do your due diligence, for example, “unless they give you specific permission to copy the code, don’t copy the code. But you can basically learn from it, and then write your own thing accordingly.”
At the end of the day your code/project will be different because everybody’s needs are different, so your app, project, etc, will be not be a carbon copy unless you want it to be…in which case lawyer up! But everyone had to start out somewhere and they became experienced by using what they saw and adding their own thing to reflect the needs of their client, employer, or the very project they were creating.
The VLOG goes into greater detail and you should check it out. Go out there and create, learn and be better than you were. -Enjoy!