Discover more from Grinning & Solving
Sometimes a talk between two developers could sound gibberish for a PM
Let's step up your game by learning a few new fancies words
As product managers, we will talk to software engineers and others about programming languages all day long. And sometimes, it's pretty common we get lost in the technical conversion between developers and engineers. I heard a few peers complain that sometimes sound like a foreign language. But you don't need to speak the language to understand general concepts and ideas.
I split this article into two parts to help you read and sink in the fancy terms I will throw here. I promise you, It's not that complicated.
A programming language is simply a way to give instructions to any computer, including a smartphone, to accomplish a particular task or provide a specific experience to someone using the device. A complete set of instructions is what we call an application, or App, or program. You'll also hear the set of instructions referred to as the code. Code means the instructions that are written in the actual computer language.
Computer languages are different from each other; it's like English and French, the goal is the same, but the grammar, structure, and spelling are different.
HTML provides the content you see on a webpage, basically what the text and images are.
CSS specifies how that content should look, what font and size, the background color, and all the visual aspects of a page.
Another pretty standard language for web pages and applications is PHP. All websites, blogs, e-commerces based on the famous WordPress are PHP. It generates web pages that are created on the fly based on a user's request or input. You'll often see PHP webpages in your browser's address bar; if the address finishes with .php, the page was written in PHP.
PHP was one of the earliest languages adopted en masse for making complete web applications. So, that sounds like a lot to take in, but don't worry, you don't have to be an expert. Just becoming familiar with a few of these terms will ensure that the next time you're involved in a conversation about programming, it's not going to sound so much like a foreign language.
A high-level language example is Python. It is often used to program web servers and mobile apps. Python programs are often called scripts, and the language itself is frequently referred to as a scripting language. You're probably going to hear about Python every time you talk with data analysts and scientists, as it's their preferred language to make scripts in that parse data.
Ruby is another language that is pretty easy to read and, like Python, is considered to be an excellent user-friendly language for beginners. It's used for developing websites and mobile apps and is the power behind applications such as Groupon and Shopify. You've probably heard of Ruby when people talk about Ruby on Rails, which is the framework that makes building applications in Ruby even easier.
Scala is a functional application language designed to update or improve Java, providing features or fixing things that Java does not do well. Programs written in Scala are compatible with Java, and they will run on any system which can run Java, which is just about anything and everything, so Scala, like Java, can be used to write a wide range of applications.
Finally, objective C and Swift are the languages that power Apple's iOS and OS X. They are used to write apps for iPhone, iPad, Apple Watch, and mac, which are prevalent languages for developers who want to tap into Apple's ecosystem.
Frameworks, libraries, and SDKs
Moving forward, the programming languages themselves is just the beginning, developers use some tools to help increase efficiency when coding or to allow them to code for specific platforms. They are pretty simple to figure out.
In simple terms, a Library is a bunch of reusable code so that the developers don't have to write the same code repeatedly. Some people make Libraries others use freely for pretty standard calculations or chunks of code a programmer would need regularly.
Bringing to something in our daily lifes, the SpeedDial of our phones could be consider a Library. We don't need to type everytime the same number, with just one click you got the job done.
A Library also could be a statistical functions or algorithms a programmer can use in their own program without writing that code again.
A Framework can be anything or everything you'd use in application development. It can be a single Library, a collection of several, or even a bundle of scripts. If you're wondering what the difference is between a Framework and a Library, you're not alone. Here's the critical difference.
Frameworks are just larger sets of premade code with blank areas that you fill with your own code. Now, Libraries, on the other hand, are smaller, more narrowly focused pieces of code that you could use in your own more extensive code that makes up your program. Here's a quick real-world parallel. Imagine you're designing a house, and you find your ideal location and create your own outside walls, roof, et cetera. But you want to design two of the rooms in your house the exact same as the rooms your friend's house has, but you don't want to do the work of trying to replicate that design into the blueprint yourself. So you just get a copy of those room designs from your friend. In this case, those room designs you got a copy of are like Libraries.
On the other hand, if you went to a store and bought an entirely premade design for your house with one blank spot for a room you could design yourself, that'd be more like using a Framework.
SDK - Software Development Kit
An SDK is a set of tools for creating apps using a particular programming language. An SDK is usually centered around an application where the actual coding and testing takes place. The SDK is like the programmers' workshop where they have all the tools and resources they need to build an app.
For example, if a developer wants to make an app for iPhones, they need to use the tools inside the iOS SDK provided by Apple to make their code work on an iPhone. So keep these in mind, and you've got a good foundation for the most common terms you'll hear engineers use in association with programming languages.
I just shared the first part. I hope it already gave you a better undersanting of it. Remember, as PM, our world is getting more technical-focus everyday, and we need to keep up the pace.
Don't be shy and shoot me a comment if you have any question. If you want to dive further into product management topics, subscribe to my newsletter.
I'll see you all in the following article.