Davy Engone
/davyengone
Helping recruiters think like developers and make better hires through the Tech Jargon
Davy Engone
Frameworks explained
4y ago
Have you heard about the No-code movement? No-code platforms are just specialised frameworks.
I often see people hiring developers to help build their website, landing page or even marketing automation efforts. You don't need developers for that!
What is a specialised framework?
A framework is a dedicated tool or a set of tools that allow accomplishing a task with maximum efficiency. We discussed frameworks such as Flutter (Mobile), Xamarin (Mobile), Angular (Web) and Django (Web). They allow developers to quickly build apps for mobile and web.
Have you heard about WordPress, Joomla, Salesforce or Drupal? They are what I call specialised frameworks.
A specialised framework takes the notion of framework to other heights: They allow almost anyone to build apps without the need for developers. They are toolkits.
Here are a few examples of specialised frameworks: CRM, CMS and ERPs
CRM: Customers Relation Management
CMS: Content Management Service
ERP: Enterprise Resource Planner
These specialised frameworks allow anyone to build landing pages, websites, blogs, career pages, forms, responsive email templates or list management software.
If you're starting your recruitment firm, you can get a website build in no time with Webflow or WordPress. Your CRM and CMS could be Hubspot. Hubspot allows you to build landing pages with jobs that include analytics about the way these pages will perform.
Which specialised tools do you use on a daily basis to get things done? Did you have a developer build it?
How about No-code and Low-code?
No-code and Low-code are in a different league than specialised frameworks. These tools allow you to build things that go beyond a simple website: Apps, simple mobile applications
I'll write an essay about them in the coming days.
You can find more information about the No-code vs Low-code movement on the Tech Jargon Website.
Takeaways
Developers are a crucial part of the IT landscape today. However, you don't need them for certain types of applications. Once you understand that, It makes it easy to see why some developers won't get excited when you offer them roles where they'll have to build this kind of application.
This was You Don't Need developers for this!
If you found this useful, please share it in your community and share your feedback with me in the comments section.
Don't forget to take the weekly test to see how you stack up with your peers on the tech jargon.
Until next time, take care!
Davy Engone
Frameworks explained
4y ago
Are you looking for a React Developer? Here are a few tips to consider when either talking to candidates or writing your job descriptions.
React and the bed frame at IKEA
Picture a complete bed. Beds may have a headboard for resting against and may have side rails and footboards. Headboard-only beds may incorporate a "dust ruffle", "bed skirt", or "valance sheet" to hide the bed frame. To support the head, a pillow made of soft, padded material is usually placed on the top of the mattress. Some form of covering blanket is often used to insulate the sleeper, often bed sheets, a quilt, or a duvet, collectively referred to as bedding.
In that picture, React could be assimilated to the bed frame only.
React is a library and not a framework
React by itself isn't a complete tool. You need to add some other technologies such as React Navigation and GraphQL/Fetch to build any serious application with React. That's why React does not qualify as a Framework but as a library.
React (The Library) VS Angular (The Framework)
A library is a dedicated piece of software that does one thing. In the case of React, It is used to build One Thing: User Interface. I didn't say web or mobile UIs but any User Interfaces you can think of.
Angular, in that picture is the bed. It provides everything to build any application in one toolbox. Although some people like to add extra tools, the framework is complete.
The comparison between the 2 technologies is often misleading. React vs Angular often means do you like to assemble your own stack around React or do you prefer to use the set of tools assembled for you under Angular, the framework.
Takeaways
At the end of the day, React vs Angular, It's a matter of preferences. Do you prefer buying the bed frame and then purchasing each other piece apart before assembling them together? Or you prefer buying a bed with all the necessary tools at once. That's the choice developers are faced with.
Opportunity
When talking to React developers, ask them which stack they like to assemble around React and why.
For Angular developers, the question could be whether or not they like to use the framework as-is or they like to replace part of the framework with other technologies. You'll learn a lot about the way they think.
This was React is only the bed frame!
If you found this useful, please share it in your community and share your feedback with me in the comments section.
Don't forget to take the weekly test to see how you stack up with your peers on the tech jargon.
Until next time, take care!
Davy Engone
Frameworks explained
4y ago
I got recruiters reaching out to me about AngularJS role while they mean Angular. They look the same but they are not the same.
A short story about AngularJS (Angular 1.x)
AngularJS is a web framework created by Google in 2009 when web applications were becoming the norm. The JS in AngularJS stands for JavaScript. JavaScript was the language used to create that framework. AngularJS was a game-changer in the way of building apps.
AngularJS is also known as Angular 1.X
A short story about Angular (Angular 2+)
In late 2015, TypeScript was taking the market by storm. Companies wanted to use a more safe version of JavaScript in order to build the next version of apps. The team at Google decided to rewrite AngularJS from SCRATCH. They chose TypeScript instead of JavaScript among the new set of tools they incorporated in Angular.
This was so controversial because they had announced the new version wouldn't be backward compatible.
Imagine using some technology for years. And the creators decide to start over without insuring backwards compatibilities with the version you are using. I guess you'd be mad at them. So was everyone! Google became the enemy for a while.
It was just a matter of time before people realise the power of this new version of Angular. The team at Google was quite confident they were building some amazing. A Framework that would change the way we think about front-end development.
They were spot on. At the time of writing this essay, there were more than 2 million people using It on their project!
From Angular 2 to Angular 13
With the previous version (AngularjS) migrating from one version to the other was not a smooth process. It took time to go from 1 version to the other. With the new version, they basically release a new version every 6 months-ish. They also make sure the migration process is not that painful.
That said, a developer with experience with Angular 2 only might have issues working with Angular 13. I can safely say that an Angular developer with experience with version 8 can work with version 13 easily.
Takeaways
They're both technologies by Google. Angular is the evolution of AngularJS. Yes, their names are confusing for a neophyte but be cautious not to offer an AngularJS role to an Angular developer. You won't be making friends that way.
Opportunity
AngularJS is not supported by Google anymore therefore, you can look for clients still using AngularJS today and suggest helping them switch to Angular. Then ahead out there find experts to help them migrate.
This was Angular is NOT AngularJS!
If you found this useful, please share it in your community and share your feedback with me in the comments section.
Don't forget to take the weekly test to see how you stack up with your peers on the tech jargon.
Until next time, take care!
Davy Engone
Frameworks explained
4y ago
Before offering a React developer a React Native role, read this!
What is React?
React is a UI (User Interface) library. That means React allows developers to create User Interfaces. It was created by Facebook. If you use Facebook, you're using a product built with React.
The Philosophy behind React
Learn Once, Write Anywhere
The React team defines It as "Learn Once and Use Anywhere". That means once you've learned how to use React, you can use It to build web, mobile and desktop applications.
For non-technical people, It is important to understand that the idea of learning once and writing anywhere is powerful in software development.
One of the advantages is having a team of developers with knowledge of React that can simultaneously create applications for different platforms instead of having a dedicated team for each platform.
What's Native in React Native?
In software development, there are two platforms that compete with each other:
The Web platform: where websites run
The Mobile platform: where mobile apps run
A simple example of that competition is quite visible at Apple. Their level of Investissement on iOS (Mobile) versus Safari (Web) is telling. They really want the Mobile platform to win over the Web platform.
On Mobile, they are native technologies used to create apps:
Swift, Objective-C, SwiftUI and Cocoapods for the iOS in the Apple world.
Java and Kotlin for in the Android world.
These technologies are labelled as Native technologies because they allow developers to build apps for these platforms without the need for a translator.
Think of it this way, a French speaker doesn't need a translator in France to live in the country. French is the Native language.
However, React was created for the Web! Therefore, It's not Native to the Mobile ecosystem (iOS or Android). React Native bring the React way of writing UIs to the Mobile ecosystem. This means that a React developer, with less effort, can build applications for the Web and the Mobile platform.
This was a game-changer in 2015 when It came up. The alternative approaches were quite hard. I'll cover them in another essay.
Today, there are more technologies that offer such capabilities: NativeScript, Flutter and Xamarin.
Takeaways
React (Web) and React Native (Mobile) are 2 products by Facebook. They created these products to allow their teams to work seamlessly on their web platform and their mobile applications. That opened up the opportunity for web developers to become mobile developers as well.
However, each platform has Its own specificities. Therefore, you cannot just offer a React developer a React Native role. A better approach is to ask them if they would be interested in building Mobile apps assuming they have experience with React.
This was React is NOT React Native!
If you found this useful, please share it in your community and share your feedback with me in the comments section.
Don't forget to take the weekly test to see how you stack up with your peers on the tech jargon.
Until next time, take care!
Davy Engone
Developers tools
4y ago
Following my essay about Code Source Management, I talked about a tool that could write real code on behalf of developers: Copilot.
A bit of history
A.I stands for Artificial Intelligence.
For many years, developers have been hosting their code on Github. Millions of lines of code written in Go, JavaScript, TypeScript, Java, Python, JavaScript and Ruby were parked on Github. That's BIG DATA.
Do you know what to do with BIG DATA? As the field of A.I. and precisely Machine Learning become popular, some great tools were created with the goal of assisting developers with their tasks: Writing code.
Early on, these tools were not smart at all. They were quite static and would only suggest autocompleting some code developers were writing.
GPT-3 stands for Generative Pre-trained Transformer 3
Over time, some new powerful technologies such as GPT-3 were able to write text to the point where It was impossible to differentiate that text from humans.
This was already a scary but exciting step in developers' assistant tools.
Microsoft owns Github and the code that's hosted on their servers.
In July 2019, Microsoft invest 1 billion in OpenAI, the entity in charge of developing GPT-3. There were some strings attached to that offer:
Microsoft Azure became the sole cloud provider of OpenAI. Then, in September 2020, Microsoft bought an exclusive license to directly integrate GPT-3 into its own products.
They initially focused on code generation tools. Think of it this way:
A developer is tasked to write a program that will extract names out of someone's profile on LinkedIn. Instead of writing the code that will achieve this task, the developer will write their task in plain English. Then the AI will generate the requested code.
A little over a year ago, the code written by this tool was rubbish. Their latest version is a game-changer!
What about Copilot?
GitHub Copilot is one of the first products (not commercial yet) Microsoft has released that uses OpenAI Codex instead of GPT-3 to assist developers. It's a game-changer!
It was trained on billions of lines of public code, GitHub Copilot puts the knowledge developers need at their fingertips, saving them time and helping them stay focused.
It draws context from the code the developer is working on, suggesting whole lines or entire functions. It helps them quickly discover alternative ways to solve problems, write tests, and explore new APIs without having to tediously tailor a search for answers on the internet. As they type, it adapts to the way developers write code—to help them complete your work faster. It's magic.
Takeaways
Before you asked your developers to reduce their hourly rate because they use Copilot or ask them to work faster, consider the followings:
This tool is still in beta and still requires some input from developers to be effective
It is not available for every programming language and frameworks
It is proprietary software. Not all developers are using Microsoft's IDEs
I'll cover more about Copilot during my upcoming webinar. You can register here if you're interested.
Wanna chat with a developer? Ask them how they feel about Copilot! Enjoy your discussion.
This was Developers have lost their jobs or have they?
If you found this useful, please share it in your community and share your feedback with me in the comments section.
Don't forget to take the weekly test to see how you stack up with your peers on the tech jargon.
Until next time, take care!
Davy Engone
Frameworks explained
4y ago
In this series of essays, I'll be covering a set of tools developers cannot and should not live without.
Part 1 covered IDE, the Swiss knife of developers.
Part 2 covered GIT, the code versioning tool that all developers should know
In this third part, we will cover source code management tools such as Gitlab, Github or Bitbucket. In order to get the most out of this essay, I advise you to read my previous essay about GIT.
A source code repository is place on the Internet where developers host their code.
From developers' computers to the Internet
Developers write code on their computers. Once they are done with a certain task, they have to save that code on a server on the Internet: Github for example. Using GIT, they are able to send their code from their computer to a server.
This is a critical part of building software.
Github and Social Coding. A recruitment hub
Github for example, allow developers to have a social profile they can then use as their portfolio. Developers can follow each other the Twitter way and like each other code. A lot of recruiters use this feature to find developers.
Beyond Source Code Management
Internet hosting platforms such as Github and Gitlab provides features that go beyond hosting the code. They allow developers to collaborate on their code, review each other code and provide feedback and improvement. Moreover, they enable companies to leverage CI (Continuous Integrations) and CD (Continuous Deployment of the code) for their products.
I'll cover the concepts of CI/CD in another essay when discussing DevOps practices.
Github Copilot or what if your code was written by AI
Github is used by 73 million users. Imagine the amount of code they have available on their server! Over the years, the team at Microsoft created a program that writes code on behalf of developers. No, this is not a joke. Visit https://copilot.github.com and see for yourself.
Before you start firing developers and replacing them with Copilot, you need to understand that this tool is not a replacement for developers but their best friend.
Developers can do without Copilot but Copilot can't do much without developers inputs.
Takeaways
Code source management tools are a critical part of any software business. They offer the same basics feature: hosting code. Beyond that, each of them brings something unique features to seduce developers.
Developers can quickly adapt to new tools. Therefore, It's not mandatory for a developer to be extremely knowledgeable in this tool. They can learn on the job.
This was Developers' inseparable toolkit: Part 2, Code Source Management
If you found this useful, please share it in your community and share your feedback with me in the comments section.
Don't forget to take the weekly test to see how you stack up with your peers on the tech jargon.
Until next time, take care!
Davy Engone
Developers tools
4y ago
In this series of essays, I'll be covering a set of tools developers cannot and should not live without.
Part 1 covered IDE, the Swiss-knife of developers.
In this second part, we will cover GIT. GIT is the kind of tool that does a lot of work in the background quietly. It is critical for any developer that serious about writing code.
GIT General Information Tracker. Its creator thought of It as a stupid information tracker.
GIT equivalent in the real world
We all know Microsoft Word or Google Document; These two technologies represent IDEs in the real world. Imagine writing a document nowadays, these tools help you save and keep different versions of your document. They allow you to roll back to a previous version. Multiples collaborators can work on the same document while allowing each other's work to be merged in the final document.
Without these capabilities, writing a document would have been a nightmare.
That's what GIT does for developers' code and much more.
GIT in the tech world
GIT allows developers to run experiments, tag each experiment, merge experiments with each other and deploy these experiments in their applications.
GIT uses a branching system. Think of It as a tree with a root (the project Itself), the trunk (the main code) and the branches (different versions of the code).
Here is how you can picture a developer using GIT on a daily basis:
When starting a task:
they take a copy of the last version of the code (from the trunk).
They work on their task by creating a branch.
Once they are done with their task, they prepare their code (their branch) to be merged with other team members' code (trunk). This is called "merging code"
If they're assigned another task before finishing the current one, they can simply save their code on a branch then start a new branch, finish the task, merge it with the main code (trunk) and resume the work on the previous task just by switching branches.
Once they're done with their main task, they prepare it for merging with the main trunk.
They repeat that process again and again to ensure a high-level collaboration with their team and high flexibility in the software development process.
GIT and A/B Testing
You've probably heard of the DevOps mindset: Iterate quickly on an idea and test it with your users. The more tests you run the faster you'll find the feature that works best for your users.
To get to that level, developers need to use GIT. Each feature could be a branch. Branch A could be the one that has a grey background and Branch B has a white background. The team can then deploy 2 versions of their product and test which version A or B their users like the most. Once they find the best version, they make it available to all users. This is often called A/B testing.
Takeaways
GIT is a must-have and must-know technology for a developer. If a developer isn't at ease with GIT, they have a fundamental gap in software development.
A piece of advice I give to developers is to master GIT! It's one of the greatest investments they'll make in their career.
This was Developers' inseparable toolkit: Part 2, GIT
If you found this useful, please share it in your community and share your feedback with me in the comments section.
Don't forget to take the weekly test to see how you stack up with your peers on the tech jargon.
Until next time, take care!
Davy Engone
Frameworks explained
4y ago
In this series of essays, I'll be covering a set of tools developers cannot and should not live without.
Software development is an art that requires discipline, deep focus and a lot of trials and errors. Actually, the latter is probably the most important of all because developers run a lot of experiments before settling for a solution. To support a great number of experiments, developers need some special tools. The first one we will cover in this series is an IDE.
IDE stands for Integrated Development Environment.
An IDE in the real world
We all know Microsoft Word or Google Document; These two technologies represent IDEs in the real world. When writing a letter, using one of these tools will drastically accelerate the way you deliver your piece. They will help you with spellcheckers, words suggestions, the semantic meaning of the sentence, the formatting and much more.
Imagine writing a letter nowadays without these tools. You'll be much slower and not efficient at all.
Therefore, the choice of tools is critical. You cannot afford not to have the best one the market can offer.
An IDE in the tech world
In programming, when people write code with Java, JavaScript, C#, PHP or any programming language and framework, they use an IDE. The IDE helps with the following:
Code Suggestion and Code completion
Errors checker and code execution
Debugging errors faster
Code Testing
This list is not exhaustive. The number of features is 100 fold the one listed above.
List of (famous) IDEs
IntelliJ is the most popular IDEs in the Java world. You've probably heard of Eclipse.
Microsoft Visual Studio is the flagship IDE within the .NET environment
Visual Studio Code or VSCode in short is one of the most used IDEs for JavaScript-based projects. However, It is used with dozen other technologies. The only thing needed is a plugin
WebStorm is also quite popular in the web world
PHPStorm, just like the name mentioned, is for PHP-based projects.
XCode is the IDE to build apps in the Apple world (Swift or Objective-C)
Android Studio is for Android apps
This list is much longer than listed above.
Takeaways
A developer without an IDE is like a writer writing on a paper. IDEs are so obvious that they are often not mentioned in job descriptions or resumes. They're just part of the ecosystem.
A piece of advice I give to developers is to master their IDE! They only need to master one. That will save them hours per month.
This was Developers' inseparable toolkit: Part 1, IDE
If you found this useful, please share it in your community and share your feedback with me in the comments section.
Don't forget to take the weekly test to see how you stack up with your peers on the tech jargon.
Until next time, take care!
Davy Engone
Frameworks explained
4y ago
Although the Corona described in this essay has nothing to do with the virus, they share the ability to cross any border with the same characteristic.
Did you know you can build for multiple platforms with the same technology? This seems like an impossible task but the CoronaLabs team claimed with their technology, you can build apps and games for platforms such as Apple iPhone and iPad, Android phones and tablets, Amazon Fire, Mac Desktop, Windows Desktop, and even connected TVs such as Apple TV, Fire TV, and Android TV.
Cross-platform defined in the real world
The keyword is 'Platform'. In the real world, this could be two or more countries that don't exchange with each other. In Belgium for example, there are 3 spoken languages in 3 different regions of the country. When a law is being voted to work in the whole country, you can think of It as a Cross-(Region) law, meaning it works seamlessly in all regions.
Cross-platform defined in the tech world
In the tech world, we have some classics:
Android, iOS and the Web platform: React Native is a mobile framework that allows developers to build cross-platform applications for iOS, Android and the Web. Flutter and Xamarin are also cross-platform mobile frameworks.
macOS, Windows and Linux: Visual Studio Code is a cross-platform IDE that allows developers to write code from any Operating System: This was not possible for quite some time. It changed Microsoft and Its ecosystem for the better.
Safari, Chrome, Firefox and Edge: JavaScript is a programming language that works on all these platforms natively. Moreover, JavaScript could be used in the backend with NodeJS. One could say JavaScript is a Cross-Platform technology.
Some companies don't like this cross-platform approach in software development: They rather have one technology per platform. For example, in the mobile development world, big companies often have a dedicated team for iOS and another one for Android. They wouldn't use technologies such as React Native or Flutter.
Takeaways
Cross-platform can mean many things depending on who you talk to. Mobile developers will refer to the different Operating Systems while web developers will focus on the different browsers.
Tips #1: When you find the word cross-platform on a resume, pause and try to understand the context. Often the set of technologies they use gives it away.
Tips #2: Working and maintaining cross-platform technologies is often a pain for any company. Try to understand what are those challenges and offer them solutions to solve them. For example, a company that uses dedicated teams for iOS and Android might face the issue of having to build the same apps twice. Vice-versa, they might be dealing with platform-specific issues that are difficult to tackle with React Native or Flutter. Just listen and see where is the pain.
This was Corona is a Cross-Platform technology. What are the limits?
If you like this essay, please share it around. Moreover, join the weekly challenge that allows you access your understanding of the technical jargon.
Until next time, take care!
Davy Engone
Frameworks explained
4y ago
You might be asking, which rails? what are the GPS coordinates where we found them?
The simple answer is: on The Internet!
Ruby on Rails or how some technologies are deeply linked
Programming Languages are "often" used to create frameworks. I say often because some frameworks are used to create frameworks. Think of Angular and Ionic.
Ruby on Rails is quite a popular technology. Or I should say, they are one with the name that tells you a lot about the underlying principles:
Ruby is a programming language and Rails is the web framework built with Ruby.
This also means you cannot use Rails with JavaScript or Java for example. It's in the name.
Ruby the language and Rails is the domain expert written in Ruby
Let's explore other technologies with the same ethos.
List of technologies that carry information about their usage
JavaScript is quite popular as a language. Anything with the suffix JS in their name is either a library or a framework: ExpressJS, ReactJS, NodeJS, NestJS
Python is also quite popular and libraries such as NumPy, PyChart, SciPy, PyPI, PyPy,
The .NET framework is quite unique in the sense that It is a framework but the most popular language used is C#. ASP.NET and VB.NET, respectively a web framework and a programming language, are also used within the .NET ecosystem.
.NET is also a popular extension for domain names so don't think everything finishing with .NET has to do with Microsoft
If you know of these technologies, please, mention them in the comments section.
Popular technologies that stand on their own
When you hear the word Spring It evokes right away Java for many people. The name doesn't say much about Its usage in this case but It is so popular that for a Java developer today, It is almost impossible to not know the existence of Spring.
Spring is so popular that there is a version for the .NET world. Spring.NET
In the PHP world, Laravel and Symphony stand on their own. There are 2 frameworks for building web applications with PHP.
Takeaways
Technologies are designed to be used by developers. They have to come up with names that make sense for developers. it's often about marketing: Ruby on Rails.
This essay could be much longer but I try to keep them short so that you quickly get the idea and move on with your day. If there are technologies that come to mind that I forgot, please add them in the comments section.
If you've learned something with this essay, please, take the test in order to assess your level of understanding.
Until next time, take care.
Davy Engone
Programming langages
4y ago
The benefits of speaking more than one language
As human beings, we understand the benefits of speaking more than 1 language.
According to some research, here are a few of the benefits of speaking another language:
Increases Creativity
Connect with other people natively (Real human connection)
Strengthens Your Brain Muscles
Allows you to leverage multiple perspectives when dealing with a situation
Here is how these points can be applied to software development:
Increases creativity
Programming is an art. As an artist, the influence of other artists is useful when working on your own projects. Knowing that something can be done in Java while working with C# can lead to the right Google search.
Connect with other people natively
Once, I had a meeting with a new client for an Angular role. The backend team was at the meeting with questions about the usage of Angular in a .NET environment. With my background in working with C# and ASP.NET and ASP.NET Web API, I was able to connect with them and reassure them that It wasn't as daunting as they thought.
Yes, we won that project and helped them deliver their software on time.
Strengthens Your Brain Muscles
Exploring other languages just for fun is a rewarding game. The keyword here is "exploring". Beyond the new techniques you'll learn, you'll develop new connections in your brain. The same applies to frameworks. For example, a few years ago, I decided to create the same application with 4 different frameworks (Angular, React, Vue and Erlang) and 4 different programming languages (TypeScript, Java, C# and Elixir). That was a weekend well spent. I recommend it to anyone serious about software development.
Allows you to leverage multiple perspectives when dealing with any situation
Each programming language has a different way to express the same issue. Moreover, some language addresses issues that others don't. Understanding these differences is a superpower one can leverage to solve any issue.
The same can be applied to frameworks.
Speaking more than one language is a great asset
Takeaways and tips
It's not required for a developer to know more than one programming language. I've hired hundreds of developers in my career and I considered having 2 languages as a great asset. Especially if the languages have different paradigms: OOP (Object Oriented Programming) or Functional Programming. I'll cover these paradigms in another essay.
Tip #1: Some developers have side projects they are working on. Often, they use them as playgrounds to try new technologies. As a recruiter, you can find in these projects the technologies these developers really love and want to work with. If they are different from the ones they use on a daily basis, you got a chance to make them infinitely happy.
This was "The benefits of speaking multiple languages"
I hope you'll learn something new from this essay. Feel free to join the weekly challenge to check your knowledge of the technical jargon.
Until next time, take care!
Davy Engone
Programming langages
4y ago
Python is actually a snake! Let's agree on that before diving into our main topic of today. 😉😉
During our technical Bootcamp for tech recruiters, we play a game called "Categorize them all". We give attendees 50 cards representing technologies used in software development. On the wall, we display a list of 10 categories (Frontend, Programming languages or Data Science). Attendees have to associate each technology with the right category.
90% of the attendees drag the Python card under Data Science.
Python is a programming language.
The attendees aren't completely wrong when placing Python under Data Science.
Indeed, Python is one of the most used languages in the Data Science world. So is the R programming language.
Here is why having Python under the Data Science category is misleading.
There are a lot of developers that use Python to build web applications with Django and other frameworks. Some use Python to automate repetitive work. Python is used practically everywhere even in Data Science.
Therefore, these developers have Python on their LinkedIn or resume and they get requests for jobs in Data Science just by having Python on their profile.
You can imagine how this doesn't help improve the relationship between the two parties.
Python is the most popular language used in Data Science. The story!
Travis Oliphant, a data scientist, is the creator of the famous library NumPy. He started writing code in Python while doing his PhD. Through his work, NumPy (Numeric Python) became popular in the Data Science community. It became a must for all Data Science students to learn Python in order to leverage the work done by Travis.
Travis could have written that library in Perl or Java if he had the knowledge at that time. The story would have been completely different today.
NumPy made Python popular in the Data Science community.
Takeaways and tips
Python, just like the snake It is, can enter any industry. It takes someone with knowledge of the industry and some Python skills to make it a reality. You can apply this logic to any programming language.
Here are a few tips you can use on daily basis:
Tip #1: A programming language can be used to build any type of application.
Tip #2: Don't hire for Python roles. That's not specific enough. Seek the underlying need then search for developers. For example, "I'm looking for Data Scientist with Python skills" is better than "I'm searching for a Python developer"
Tip #3: Don't single out a language to a certain industry. Languages are fluid.
This was "Python is not Data Science".
If you found this useful, please, check out our Bootcamp and learn how to understand the technologies around you.
Until next time!
Davy Engone
Frameworks explained
4y ago
.NET developer doesn't say much about the job! An essay on the .Net Framework.
I used to be a .NET developer. That was 8 years ago. In 2022, I'm still receiving jobs for .NET roles.
The conversation with a recruiter
Here is a conversation with a technical recruiter I had a few years ago:
The recruiter: My client is looking for a .NET developer for an FT role in London.
Me: Interesting, could you tell me more? What do they build? Is It a web or a desktop application? Which problems do they try to solve?
The recruiter: It is a bank. The programming language is .NET. They are building an internal tool to support the back office of a trading floor. Here is a list of other technologies they use: F#, WPF, Team Foundation Server, SQL Server, Multi-Threading.
With your experience in programming in .NET, you should be a great fit! Experience with WPF is mandatory.
Me: This is a great opportunity. However, .NET isn't a programming language. F# is the language. I don't have experience using F# but C#. I would love to learn it though. Moreover, I don't have experience with WPF.
The recruiter: .Net is the main language they use. WPF is actually mandatory. Send me your resume and I'll check with my client.
I sent him the resume and never heard back from him.
.NET is a Framework and a .NET developer isn't clear enough as a description
As the title says, .NET is not a programming language. It is a framework.
Actually, It is a framework that contains other frameworks. Think of it as a giant toolbox that is composed of other small dedicated toolboxes.
Within the .NET framework, you can find the following frameworks:
ASP.NET, a framework used to build Web applications
WPF, Windows Forms and UWP are frameworks for building Desktop applications
Xamarin for building mobile applications
Unity for building games
There are way more frameworks than the ones listed above.
Understanding this is fundamental in creating a meaningful connection with your clients, your candidates and hiring managers.
These frameworks could be used with C# or any programming language that's part of the .NET platform.
Takeaways
That recruiter didn't have a good understanding of the technologies required for this role. He used a set of keywords. Here is how I would have phrased it If I were that recruiter:
The recruiter: It's for a bank on their trading floor. They are building a multi-threaded desktop application with WPF and F#. It will be used to support the back office of the trading floor. As you can see, It is a .NET environment with SQL Server as a database.
I hope you see the use of the tech stack not as a list but as a way to describe the environment in which the candidate would perform.
What do you think of it? Please, share your feedback in the comments.
That was .NET is not a programming language.
The Technical Bootcamp
If this is useful and you would like to learn how to speak fluently the technical jargon, you can join our Technical Bootcamp for Recruiters and Business developers
Davy Engone
Frameworks explained
4y ago
In software development, frameworks allow developers to deliver applications faster than usual while avoiding repetition.
Framework in the real world
We all know IKEA, right? That small startup out of Sweden. When you buy products from them, they usually come in one or multiple boxes. These boxes have everything needed to put together the furniture. These boxes are self-contained.
These boxes represent frameworks in the real world.
Prior to putting things into boxes, they've tried to assemble them once, twice and maybe 3 times before identifying all the elements needed to provide to their users a self-contained puzzle.
Imagine IKEA had only provided you with the frames for your furniture. And you had to buy yourself every single screw, handle, screwdrivers, spanner, and socket. Your experience would have been completely different.
Frameworks in software development
The idea is the same as in the real world. A framework is completed. It gives developers all the tools to build all kinds of applications.
They are frameworks for everything:
Mobile frameworks: Flutter, React Native, Xamarin, NativeScript
Web frameworks: Angular, Vue, Express, ASP.NET, Laravel, Rails
Frameworks of frameworks: .NET, .NET Core
Cloud frameworks: Microsoft Azure, AWS, Google Cloud Platform
Specialized frameworks: CRM, ERPs, CMS
The list is infinite and complex. The bottom line is every industry benefits from having frameworks that allow them to deliver value faster and consistently to their customers.
Takeaways
There is a tight relationship between a framework and a programming language. Often, someone or an organisation with expertise in a field uses a programming language to create a framework that makes it easy to build applications within that field.
For example, Google has expertise on the web. They used TypeScript to create Angular with the goal of enabling new types of web applications on the internet.
Microsoft did the same thing with C# and .NET. Although, .NET is a framework of frameworks. I'll cover that topic in another essay.
Frameworks ------ Languages
ASP.NET ------ C#
Django ------ Python
Express ------ JavaScript, TypeScript
Angular ------ TypeScript
Flutter ------ Dart
That was Frameworks, Don't repeat yourself!
I hope you've learned something from this essay. If so, please take this test to assess your progress.
Until next time!
Davy Engone
Programming langages
4y ago
We're looking for an API developer with a good understanding of the HTTP protocol and the JSON format.
Have you seen such a request on a job description or on a resume?
JSON and HTTP in the real world
A few days ago, I had to send a webcam to a colleague of mine who lives in another country. I arrived at the post-office and they told me to choose a box (JSON) where the webcam would be transported. I had the choice between 4 different sizes of boxes. Once a day, a truck goes to the post-office comes, collects, and dispatch these boxes to their destination using different transportations (HTTP for example): Airplane, Truck, Train and ecetera.
The above story describes HTTP and JSON. When you try to connect 2 systems, for example backend and frontend, you need a way to take data from one system to the other. HTTP takes care of that. The data has to be put in a "box". JSON is that box. It is just a format.
There are other formats such as XML. Moreover, there are other transportation protocols such as TCP.
JSON stands for JavaScript Object Notation. It is a data format. It allows different systems to send information between each other without speaking the same language.
HTTP stands for HyperText Transport Protocol. It is a transportation protocol.
JSON and HTTP in the tech world
iOS and Android communicate via JSON
Imagine having a smartwatch made by Apple and an Android phone. These are 2 different ecosystems. The languages spoken within these 2 systems are different: Swift for Apple and Java or Kotlin for Android.
When you try to connect your phone and your watch, they need to exchange some data between them. In the simplest form, your watch will send information using the JSON format. Your phone will read the data via a JSON format reader and use it to display information on the screen.
Depending on the scenario, HTTP or Bluetooth could be the transporatation protocol.
Frontend and backend technologies communicate via JSON
To cross the frontier between frontend and backend, there's no other choice than to send information via HTTP(s). HTTP allows the data to be transported under the JSON format. If the backend is written in Java, the developer has to prepare the information using the JSON format, send it via HTTP so that the frontend (JavaScript) can read the data and display it.
Takeaways
As a recruiter or a business developer, JSON should then be that difficult to grasp. Developers deal with it on daily basis. It is an assumed knowledge when building applications nowadays.
A simple question you can as to candidates is: What is the difference between HTTP and JSON?
This was "JSON" Bourne, which data do you carry?
The goal of this essay was to make it easy for you to understand them at a basic level. I hope you got something out it. If so, please, take this test in order to evaluate your progress.
Till next time, take care.
Davy Engone
Programming langages
4y ago
JavaScript is not reliable. TypeScript fixes it!
This is somehow controversial in the tech world. The so-called JavaScript experts will tell you they don't need TypeScript. Once they've tried It, they come full circle and adopt It.
JavaScript and TypeScript are 2 programming languages. TypeScript makes writing code safe.
The story for non-technical people
Imagine going to a bakery to buy some bread 🥖🥖🥖. They cost 5€. You take out of your pocket 5€ in paper money and hand it over to the merchant. They put it in their cashier and move on to the next customer.
Later that day, the merchant heads to the bank to deposit 💵 their money and your 5€ paper money is being rejected by the bank. They say It's a fake 5€. It looks like one but It's not one.
The bank suggests to the merchant to adopt a money checker in order to avoid these issues in the future.
Enters the money checker (TypeScript)
You've probably all seen a money checker. It's a machine that comes in different shapes and forms. It uses violet lasers to check the paper money.
The advantages of using a money checker are obvious at this stage:
no more scams
no fake money in your cashier
no money rejected at the bank
If you understand this concept then you understand what is TypeScript and why JavaScript developers should be using this instead.
Takeaways
The reality is some developers are religiously attached to JavaScript. They see TypeScript as an overhead on top of their JavaScript applications. This is obviously a misunderstanding of the benefits of such technology.
TypeScript is the money checker. All JavaScript developers should be using TypeScript instead.
Advice for tech recruiters and business developers
When you see job requests for JavaScript developers, you can challenge the hiring manager about the choice of the language. I guarantee It will make you look good. Moreover, It will allow you to create value in ways you can't imagine. Just think of you telling the baker about the money checker. They might not see the need right now but you can show them with a minimal example how this will improve their shop.
When talking to a candidate that has TypeScript on their resume, you can ask for the moment they made the switch. What was the trigger for them? You'll learn a lot about their way of thinking about code.
That was Don't hire JavaScript developers but TypeScript.
Hopefully, you've learned something from this essay. Fee free to take the test to measure your progress.
Until next time, take care!
Davy Engone
Programming langages
4y ago
SQL, MySQL, PostgreSQL, SQL Server, T-SQL and PL-SQL have something in common!
I can hear you saying "SQL". And you'll be completely right. However, the story doesn't end there.
SQL stands for Structured Query Language. It's a language used to communicate with Database.
A quick introduction to Databases
One of the main common denominators between these technologies is Database. They are all related to how developers manipulate data in any kind of application.
Wait, there is more. You can split them into 2 groups:
the (programming) languages
the (database) engines
Before getting too technical, let me give you an idea of how you can frame this in your head:
Programming languages allow humans interactions with computers.
A database is a place (an engine) where humans store information in the digital world.
To access the stored information, a programming language is often needed.
The programming languages
In the list of technologies mentioned above, SQL, PL-SQL and T-SQL are SQL-based languages.
SQL is the main standard for these types of databases. Think of It as Latin being a standard for languages and French or Spanish being some flavour of Latin.
PL-SQL stands for Procedural Language SQL and was created by Oracle to extend the possibilities of SQL.
T-SQL stands for Transactional SQL and was created by Microsoft to extend the possibilities of SQL as well.
PL/SQL cannot be used within the Microsoft world and vice-versa. They made it only available within their world.
The database engines
SQL Server, MySQL and PostgreSQL are database engines. You can CRUD data from these databases. You're going to need one of the programming languages mentioned above to accomplish this.
CRUD stands for Create, Read, Update and Delete data from a database
SQL Server was created by Microsoft and the language used to CRUD data is T-SQL. This technology is closed-sourced. I'll cover this topic in another essay.
MySQL is an open-sourced technology created back in 1995 and the language used to CRUD data is SQL.
How do you recognise a database?
As we've seen so far, database engines have "SQL" as part of their name. However, this rule doesn't apply to all databases engines. For example, OracleDB, MongoDB and DB2 are also very popular databases engines and they don't have "SQL" in their names.
DB at the end of these names stands for DataBase. Therefore, there's always a hint in the name: SQL or DB.
Takeaways
Databases (engines) are a critical part of any products developers build. It is part of the stack used by any application. Data need to be stored somewhere in a safe manner. It's a multi-trillion market. Big and small corporations are fighting to get the attention of developers with their database engines. To access data, languages such as SQL, T/SQL or PL/SQL are required.
Advice for Tech recruiters and Business devs
As a technical recruiter, you should look for queues such as SQL or DB in order to spot databases used by your clients or candidates.
Moreover, developers don't usually interact with databases directly. DBA or Database administrators do. Developers often use an abstraction (a translator) on top of databases called ORM. I'll cover ORMs in another essay.
This was We are from the same family but we have different strengths.
If you got something out of this essay, take this test to access your progress.
I welcome your feedback with open arms.
Thanks for reading.
Davy Engone
Programming langages
4y ago
Before you jump out of your chair screaming "Blaspheme", let me preface this title with the following:
JavaScript isn't Java. Developers often complain about recruiters contacting them for Java jobs when they are JavaScript developers. I was one of these developers that got dozen of such requests.
A little history of JavaScript for tech recruiters
JavaScript, often called JS, was created in 10 days back in 1995. Yes, It took Brendan Eich 10 days to create a programming language. It was a matter of life or death for Netscape, the software company that brought us the first commercial browser: Mosaïc.
Here was the small issue. Back in the early nineties, there was no Internet Explorer. Therefore, to surf the web, people mostly used Mosaïc on Windows. Mosaïc was a paid product by Netscape and available for users on Windows.
That means that Microsoft, the owner of Windows, was in charge of distributing a product by another company.
At some point, according to the story of JavaScript as told by Ben Horowitz, an ex-employee of Netscape, in his book "The Hard Thing About Hard Things", Microsoft bought a browser from a university and started distributing that for free for Windows users. If you follow until now, you understand right away that Mosaïc, a pretty big revenue for Netscape, was in danger.
2 products with the same features, one paid, the other free. Which one will you choose?
From Mocha to LiveScript to JavaScript
In order to keep their users on Mosaïc, one engineer at Netscape decided to create a programming language called "Mocha" in 10 days. If you're wondering why creating a language in such situations helps? You should read my essay about the power of programming languages.
In short, the reasoning is by having a programming language that works on Mosaïc, they could allow developers to write apps available only on Mosaïc. Therefore, users will keep using Mosaïc even when Internet Explorer will be available for free.
Think of it this way: It is difficult to switch from the iOS world to Android.
However, developers didn't rush on writing apps for with "Mocha". Netscape renamed the language to LiveScript. As a way to emphasise that the language helps create Live (dynamic) pages. That didn't work either.
Java is for serious developers
Back in the early nineties, Java was the most popular language and It was considered A Real Programming Language. If you were serious about programming then you were using Java.
As a marketing move, Netscape agreed with Sun Systems, the creator of Java, to renamed LiveScript to JavaScript. It worked. JavaScript started taking root.
Microsoft understood their strategy and created Its own language called JScript, a copy of JavaScript.
Microsoft was evil and relentless
Microsoft fought back by creating their own version of JavaScript called JScript. It was a copy of JavaScript with the same bugs. Microsoft was relentless and unapologetic.
Mosaïc ended up dying and Netscape was sold to AOL in 1999.
Internet Explorer became the default browser for everyone.
JScript died and JavaScript became the default language of the web.
Takeaways
JavaScript and Java are only linked from a marketing point of view. They are not the same. You'll make a lot of enemies if this concept isn't clear.
This was To survive, JavaScript "copied" Java. I hope you've learned something by reading this essay. Please share your feedback in the comments.
Davy Engone
Programming langages
4y ago
C#, Objective-C, C++ and Java have something in common!
Here is a conversation with a recruiter I had some years ago:
The recruiter: I got an exciting opportunity at a client of mine for a C++ developer.
Me: C++?
The recruiter: I meant C# (Csharp). They work with Microsoft technologies
Me: Not sure I can help with this opportunity. I only have a background in C and I'm not really interested in working with Microsoft technologies, whatever that mean.
The recruiter: C, C++, C#! Aren't they just a different version of the same thing? C!
If you see immediately where are the issues in this conversation, please take this short test.
The same conversation adjusted to the real world:
The recruiter: I got an exciting opportunity at a client of mine for a French speaker.
Me: French?
The recruiter: I meant Spanish. My client works within the European ecosystem
Me: Not sure I can help with this opportunity. I only have a background in Italian and I'm not really interested in working within the European ecosystem, whatever that means.
The recruiter: French, Spanish, Italian! Aren't they just a different version of the same thing? Latin languages!
I hope by now, you see what are the issues with this request from the recruiter.
In short, C, C++ and C# are from the same family of languages called C-based languages. It means, they borrow the same syntax and some fundamental concepts are the same. However, the languages have evolved to a place where you cannot just hire a C developer to carry the job of a C++ developer.
Here are other languages that are come from the same family: Objective-C, Java, Go, Swift and TypeScript. The last 4 don't even have a C-based name.
Just like French, Italian and Spanish which are Latin-based languages you cannot just put a Spanish speaking operator when a French one is needed. You'll get in trouble.
There's one more issue with that conversation. I'll address it in another essay.
If you know which one I'm referring to, please, comment below
Review and improvements
Here are ways I would have introduced this role to the candidate if I were that technical recruiter:
version 1: Don't reach out to them. They don't have the required background.
version 2: I got an exciting opportunity at a client of mine for a C# developer in a web environment with ASP.NET (Framework). With your background in X, this could be a great challenge for you.
Takeaways
Some technologies have the same sounding names, they come from the same family or they are just a new version of a previous one. That doesn't mean they could be replaced with another.
This was We're from the same family but we don't get along!
I hope you learn some more from this essay. Take this test to evaluate your progress.
If you like to engage with me about this content, my DM is open!