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!
What makes a web app successful? The development process and the realities of real-world coding.
You’ve probably seen or heard a lot of stories about a businesses’ web project (or projects in general) failing. Heck, if you’re a freelancer chances are you’ve witnessed it firsthand! It’s a more common occurrence than you think, especially with small businesses. “…You do all kinds of work, you put out a beautiful website or you put out a beautiful web app, and then you link to it in your portfolio from your own website, and the next thing you know -bing, bing, boom- the client instead of calling you up to try and make updates, they try to tweak it themselves of they hire their kid; they get the kid to come in there and they try to fix it and they mess it up, and in a short period of time the site looks terrible.”
So why does this happen? Well, believe it or not, it doesn’t come from a purely bad place in terms of the intention. That is to say, your client isn’t trying to ‘F#%$’ you or your work, or your livelihood for that matter. It actually (for the most part) comes from a place of ignorance: they just don’t know…anything, really…including how much it actually costs. “A lot of people who jump into the game of building a website or building a web app -any app- they don’t really realize how much work it really is to refine the product, to get it to the point where it’s really ready for market.”
Sound familiar? Here are some pitfalls that have unfortunately cut down many a project in the prime of their lives (and some even before that).
Versions and Iterations: Microsoft has Windows10, so what happened to windows 1-9? Yup, they were previous versions that were replaced by (theoretically, arguably, etc.) newer, better, faster versions. Products and projects must evolve or improve (bugs, glitches, etc.), or the user will simply not want to use it and go somewhere else. Which brings us to our next point
UI and UX: Now depending on the company or client you work for, they might like to lump these two things together but trust us, they are two very different things. UI (user interface) is pretty much the look of things what the user sees: colors, designs, fonts, formatting -the eye candy, so to speak. But UX (user experience) is how easy it is to use, and that is the real draw to a product or project. You could have the most appealing, eye-catching, awe-inspiring design, but if you can use it: if it’s clunky, takes forever to load, or your users just have no idea how to start or where to go to get what they need, it’s useless.
Poor Budget Planning: This last one is almost always the case (especially with getting the ‘kid’ in to do your work). “When a lot of small business owners realize they’re gonna have to invest much more into the project, a lot of them will drop the project in that point in time. I’ve had clients who spend fifty grand, 100 grand on a project, they get it out there and it’s starting to get some traction but they’re not willing to put more into it, so the system kind of sleeps and slowly fades and dies away.”
And on that positive note, check out the VLOG!! It goes into way more detail on these points and uses clear cut examples like MySpace, and Google, and StudioWeb! There’s also a mention of how to bill small companies for your time in case a project does go down in flames, you won’t go into bankruptcy. Speaking of UI and UX, check out our online courses [links below…shameless promo, I know…], as a great example and who knows, ya might even learn something…
Someone discovers the hidden treasures of PHP, and makes money with it!
We received a comment from someone (check out the VLOG), who states that since they started learning php, a whole new world has started opening up for them. They’ve…”discovered all these scripts for all kinds of things you can’t buy anywhere, [and]…if you refactor it, you can make it compatible with the most recent version of php.” So if you put in the time and work you can have a whole new app, or software solution, etc… And they go onto say that they are bringing solutions into the work place that their co-workers haven’t even thought of, and all we can say is, ‘We salute you Sir or Madam’.
Long have we sung the praises of that workhorse: php. A programming language that’s been around for an arguably long time, but shows no signs of going anywhere, due in large part to it’s flexibility and (relative) ease of use. “That’s one of the strengths of php, by the way… It’s been around for so long; so many people used it in the real world contexts: to get stuff out, to hack stuff out, but there’s tons of stuff out there. A lot of it’s not well written…but you may have 75% of the guts of what you need there, and you can just grab it, improve it; refactor (you know, it just means rework it), fix it up, make it work and then BOOM! Drop it on where you need to have it drop in and Bob’s your uncle. And that’s perfectly reasonable thing”.
Check out the VLOG for a sharper explanation and some more beautiful MTL skyline. Keep on digging through scripts and libraries and you never know what you might find… -Enjoy!
PS- WPForms is our sponsor for this VLOG and they provide plugins for WordPress that give you drag-n-drop capabilities, plus other really powerful forms, etc., and if you click the link (below), they’re offering a sizable discount.
Are you too old to learn software development at 30?
I know what you’re thinking… You’re on the young side of 30 and you’ve either started learning software development and are looking for a job, or maybe you’re back on the job market again; ready to see what new cards you get dealt, but is it too late? Will the landscape have shifted so much that you’ll feel out of place compared to theses 20 somethings who are younger, faster, and seem to run on a poor diet of espresso curtado and some 12$ packets of nuggets with kale in them? Can you compete with that? Is 30 to old for being a software developer?
The Answer, which most of you probably already know is ‘NO’, you’re going to be alright! To put this into perspective, we have talked about being much older and doing this and still making it work, so 30 will (comparatively) be a piece of cake. “30-32: you should not be worried about that, for sure. If you were in your late 40s or 50s working for startups could be an issue -although there’s lots of opportunity if you’re that age to get into freelancing, small business web development, small business development [consulting], but [30 years old], it’s not even close to being an issue.” In the previous articles we also spoke about domain knowledge ( the industry you might have previously worked in) and how that is worth way more, especially if you’re intending to use your software/web development in the very domain/industry you were a part of. “…if you have domain knowledge, that’s more important than knowing another framework or another programming language …you’re probably going to be a more valuable programmer in that regard…”
So there you have it, “generally speaking if you want to go work for a young startup, if you’re in your 40s or 50s you’re probably going to have an issue, unless you happen to be highly experienced in a particular area where that startup needs people. On the other hand there’s so much opportunity in terms of software development, that all the statistics that I’ve seen, there’s going to be this huge shortage (especially in North America) of software developers.”
The VLOG goes into more of an explanation plus some very interesting anecdotes about the state of software development, you should check it out. Speaking of ‘checking out’, our courses are linked at the bottom and they take advantage of almost 3 decades in the industry and are created to get you up and running and ready to create and tackle most problems you’ll encounter out there; also worth checking out. -Enjoy!
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!
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!
Can you still make money as a freelance web designer in 2019-2020?
No clever title today, young devs… We received an email that had so many good, topical questions that we decided we didn’t have time to get ‘cute’ and just wanted to dive right in…
Is freelancing web design still viable in 2019-2020? -More than ever. There is an unprecedented amount of freelancers in North America and the world. “I’m not talking about web programming; just general purpose autonomous people working on their own businesses, whether it be in the tech space or outside of the tech space: this is the trend. …It has jumped quite a bit in the last 10 years and continues to accelerate. All these independent contractors and small business owners if they don’t already have a website, they’re going to need websites.”
Re: Freelancing in AI/Machine Learning: This is big but still in the early stages, I don’t see there being too many freelance jobs in that space -probably lots of work working for people full time- but in terms of AI/machine learning, I don’t see it as a freelancer thing yet. It’s not to say that it won’t be a ‘thing’, it’s just to say that it might take longer for people to come around to it. Like in the way that most companies didn’t even know what a website was in ’95 and now [pretty much] every company has one…
Another thing we’d like to add on the viability of being a freelancer in 2019/20, is “there was a period 4 or 5 years ago (give of take) where people were looking at websites as being less important -better to build your social media presence (like on Facebook or something)- but things have changed, we’ve seen how FB can take people down -they ultimately control your presence on their platform- so smart business owners are starting to realize it’s much better to have your own website, your own space on the web and then have a ‘satellite’ FB presence (Instagram, YouTube, etc…).” Meaning there will be a continued rise in the need for web development professionals (web design, etc).
So there you have it. Now the VLOG goes into a much deeper dive and the answers are much more robust (I mean how much can you really read here in the five minutes you have to drink your coffee while you’re supposed to be working… :] ), you should really check it out. And if it turns out you have 10 minutes instead of 5 for slacking off, check out our courses (especially ‘WEB DEVELOPMENT‘ ) which are not only built from the ground up, but also take advantage of almost 3 decades in the industry! -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?
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…
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!