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 talk to software engineers and others about programming languages all day long. And sometimes, it's pretty common for us to get lost in the technical conversion between developers and engineers. I heard a few peers complain that it sometimes sounds 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 absorb the fancy terms I will use. I promise you, it's not that complicated.
Programming languages
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.
If you're working with the web, the common languages used are HTML, CSS, and JavaScript. You can think of them like this:
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.
JavaScript gives the webpage behavior. Therefore, if you interact with a web page and respond to you appropriately, JavaScript is probably responsible.
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.
Java might be confusing because it sounds similar to JavaScript, but they aren't even close. Remember, JavaScript is specialized to change the behavior of web pages. Java is a general programming language used to code everything from enterprise software to games and mobile apps. The Java Language is designed to run on any platform that supports it without tweaking the code once it's done.
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 that 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.
Libraries
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, and others use them freely for pretty standard calculations or chunks of code a programmer would need regularly.
Bringing to something in our daily lives, the SpeedDial of our phones could be considered 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.
Frameworks
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. 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.
Wrapping up
I just shared the first part. I hope it already gave you a better understanding of it. Remember, as PM, our world is getting more technical-focus every day, and we need to keep up the pace.
Don't be shy, and shoot me a comment if you have any questions. If you want to dive further into product management topics, subscribe to my newsletter.
I'll see you all in the following article.