Categories
About us Featured Podcast Interviews

How To Learn Python With Rune

Rune holds a PhD in Computer Science and works as a freelance Python consultant specialising in big data and back-end development. When the pandemic hit, he kickstarted the learning platform Learn Python With Rune to teach others how to learn Python and apply it. He tells us about his career story & how to learn Python, how one should go about mastering this powerful programming language.

🔊 Subscribe to the podcast


You might also enjoy this interview on how to code well.

How did you go from doing a PhD to working in tech?

Back in the days when I started university, I actually didn’t think of doing a PhD in the first place. I was just starting but I thought learning is awesome, so I immediately decided I wanted to get a PhD.

But while I was studying for my PhD, I realised it wasn’t really for me because it wasn’t really deeply about science. It’s more about publishing papers and getting funding to continue your career. 

So after I finished my PhD, I started as a developer mainly in the security area (I’ve been working a lot in the security business.) I realised that the one thing that I liked was getting things done, getting projects done. So, I slowly became also a manager type person and worked a few years as a manager. Then I continued working in a SaaS company as an engineering manager for architecture and back-end teams and stuff like that. 

But then you went back to development. How is that? When did you decide to kickstart Learn Python With Rune?

I realised I missed programming a lot, and that’s actually where my journey with Learn Python With Rune started. 

I wanted to learn programming again. As a manager, you slowly lose touch with programming because you’re not really doing any professional code anymore. And I kind of missed that. 

So, a bit more than a year ago, I got the idea. It was actually when the coronavirus pandemic started. I had more time and was working from home, and I was like “I want to program again.” So, I started this small project.  I started producing small projects, publishing them on a web page, and one thing led to another. And it just escalated. 

Now, I work as a freelance consultant and they hire me and I do programming again in a freelance manner. And the reason I like that is because you kind of get more freedom. So, if you want to have some vacation, you just do it. It’s more freedom. 

Why Python? What makes Python so great?

I had to start somewhere, right? I hadn’t been programming that much in Python professionally, but I’ had been programming in C a lot. C is a really low-level programming language and it’s very effective, but you can make so many errors, pointers and stuff like that. It’s just a pain when you don’t know much because you can just do what a processor can do.

But Python is abstracted away. And what happened with Python over the last maybe 10 years is that it has so many libraries. So you can do everything efficiently. It has been developed a lot, for instance, in data science and big data and stuff like that (I myself work with Python in the big data and back-end side of things.) And you can do all this processing now because you have the libraries that can do all the heavy work, but you just manage it in Python code so it can get beautiful. 

It’s easy to understand, It’s readable. It’s almost super code. That’s the main reason I love Python. But there are also some things that I’m not so fond of. 

Like what? What is Python not so great at?

It does hide some of the things away, some of the objects and how they are represented. When you are programming in C you know everything exactly on a byte level. In Python, it’s kind of hidden away.

And I see a lot of beginners having a hard time and struggling with what an object is and what object-oriented programming is, for instance. Because we say that, in Python, everything is an object, but really, is it?. I don’t know. It depends on the implementation. And then they confuse object-oriented programming on top of that.

So, I think it does a really good job, but there are some areas that are not easy to understand in Python. But the pain you get from that is way less than the efficiency and productivity you can get from writing code in Python. 

How should one learn Python? What are your main pieces of advice?

Nowadays it’s difficult to start actually, in some sense, because there’s so much information out there. So my first advice is to ask yourself: what is it that you want to achieve with Python? What is it that you want to learn? What is it you want to code? 

If you just start thinking “I want to program in Python,” then you start a little bit here, a little bit there. All the information is available. The problem is that it’s unstructured. So you get excited about this little bit here, and then you do that, but they are different types of using Python. 

If you want to program back-end like I’m doing, then that is one kind of doing. If you just want to do data science, that’s a different way. You don’t really need to master programming that well, you just need to use some libraries and understand a little about math and so on. 

So it really depends on what you want to achieve. I think people often go around too much. So, advice number one is figure out what it is that you want with it. 

Connect by Mindquest Newsletter

Then find one teacher, one style. It’s just easier. If you take a little bit of this tutorial on the Internet, then a different tutorial, people can do things very differently and it can be difficult to have a cohesive approach. 

The third issue is about managing your expectations about how fast it is to learn. When you learn a new language, you can listen to it and understand it. But when you have to express yourself, it’s different. It’s difficult. You don’t know how to say things, but you understand it. And it’s the same with programming. 

Suddenly, when you see the solution, how people solved it, you go “yeah, I understand it all and that makes total sense.” But when you have to write it, you might have no idea how to solve problems. And that’s kind of the same problem you have right when you start. You understand Python, but you cannot express yourself in it. 

So, I think that would be my three main pieces of advice for beginners. 

One: figure out what you want to do. Two: find one tutor or one style of programming, one book. Three: manage your expectations. It takes a bit more time to learn to write Python than to read it. 

What’s the difference between a senior Python developer and a junior one?

There are actually some aspects I think people overlook. 

One of them is that, when you have a junior in a work environment, you need to help them. If you take somebody straight out of college, for instance, there are a lot of things they don’t teach in college. You know, how to do metrics, monitoring, how to ensure everything is healthy in your system. They don’t teach them that, so that’s one thing they’re lacking. It’s the experience.

Another thing that juniors tend to do is focus on building small systems. Most college-educated and self-taught people tend to do small projects because they’re easier and you have greater chances of success.

But there is an enormous difference between having one tiny system with one tiny server and a distributed system with tens and sometimes hundreds of systems that need to interact with each other and you need to figure out what to do. 

What happens when you make changes to this small thing here? How do you rebuild it when it breaks? How do you build systems that scales in features and amount of users and volume of data? 

Juniors usually can solve small-scale problems, whereas a senior developer can handle bigger scale problems. 

Another aspect I noticed over the years is that juniors are often a bit afraid. When starting in a team, when starting to develop, a junior will not be so quick to contribute to it and will want people to check the code more often and to help them more, because they are a bit afraid. 

So, when things go wrong, they don’t really have the confidence to just do stuff. and break stuff and put it back up again. They like that kind of experience and confidence. 

My advice for new people is to build something bigger. Build something with somebody else. 

You might have done tiny projects in college, or you may have worked together with other people for a bit. But try to make something bigger because you need to be able to build interfaces that interact with each other., where somebody builds one piece and somebody else builds another piece. That will teach you the kind of architecture design principles behind all of it.

I still think that’s a less important part today because there’s a tendency to go to all these microservices or services that are small in framework. And that makes them easier to understand, easier to debug, easier to maintain by other people. 

So it’s not as difficult as back in the day when you had this one big monolith that was running everything. Right now, you have small services that are easier to understand, but it also moves the problem somewhere else. How do you find where the problem is when the system goes down? You need to have really really good monitoring to find things nowadays. 

So you actually move some of the complexity over to the infrastructure guys or the SREs (Site Reliability Engineers). That’s why they are paid a higher rate now than they used to be. A good SRE is so valuable when you need to find problems in big systems. 


For more tips on how to master Python, make sure to follow Rune on Twitter, YouTube and Facebook.

He’s working on a new course portfolio focusing on how to use Python for financial analysis, so stay tuned!


Check out more of our interviews from our podcast episodes.

Categories
Growing your career: permanent & freelance IT Consultants

The Top IT Skills to Master in 2024

It’s renew or die in the world of technology. As an IT expert, you must always keep your eyes peeled for the new top IT skills that will help you stay relevant and advance your career. But the constant evolution of IT tools and the shifting business climate brought about by the pandemic can make it difficult. For example to decide where to focus your upskilling efforts in the year ahead.

While softer skills like communication and time management are life-long partners of success; technical knowledge needs to be periodically revisited and updated to keep up with enterprise trends. The rise of data science, the AI boom and the strong momentum of cloud computing are all setting the agenda for the most in-demand IT skills.

So, where to begin? This list is a good starting point for anyone looking to strengthen their CV/resume or redirect their career.

Top IT skills:

Python: Unmatched Versatility and Popularity

Python continues to dominate the programming language landscape, solidifying its position as a must-have skill for IT professionals. With roots dating back to the late 1980s, Python has evolved into the leading language, especially in the developer community. Its applications in data science and machine learning make it indispensable, while its clean syntax remains appealing to coders.

Looking to get your feet wet? Here are some Python projects to try, from beginner to advanced.

SQL: Managing Data in a Connected World

Structured Query Language (SQL) is a domain-specific language for handling data stored in a relational database management system – a database structured in rows and columns in which all data points are related to one another.

Developers and database administrators use the language’s code to perform actions such as inserting, retrieving and deleting data. Thanks to its database structure, SQL also allows for quick data processing and is used by some of the most popular database management systems, like Oracle’s MySQL or Microsoft’s SQL Server. 

Java: A Quarter-Century of Relevance

Celebrating its 25th anniversary, Java remains a powerhouse among programming languages. Renowned for its “write once, run anywhere” portability, Java retains its position as one of the top three most popular languages. Its vast ecosystem, ranging from the Spring Framework to enterprise application servers, underscores its adaptability and continual relevance. Regular updates and refinements further emphasize Java’s commitment to staying cutting-edge.

Cloud Computing with AWS and Microsoft Azure: Navigating the Sky

In the post-COVID business world, cloud computing has become more critical than ever. Amazon Web Services (AWS) continues to lead the cloud platform space, with Microsoft Azure as a formidable competitor. Proficiency in either of these platforms enhances career prospects significantly. Whether it’s AWS’s established position or Azure’s rapid strides, having cloud expertise is a valuable asset in today’s tech landscape.

Would you like to know about life in the cloud? Check out our Microsoft Azure career overview and discover all the paths you could take.

Docker: Containerization for Modern Development

Lat but not least, Containerization, with Docker at the forefront, has become essential for future-oriented developers and IT teams. The benefits of scalability, rapid deployment, and enhanced security make Docker a vital skill. Containers enable the creation and deployment of applications in self-contained units, providing efficiency and bug-free operation across diverse computing environments. Understanding Docker’s capabilities is crucial for staying at the cutting edge of modern development practices.

Connect by Mindquest Newsletter

Need tips on how to find a job in IT? Check out our IT job hunting guide.

Categories
Growing your career: permanent & freelance IT Consultants

5 Online Courses to Get You Up-To-Speed with AI in 2023

Spoiler alert: Artificial Intelligence is the future of work. Or at least part of it. This is not to say that everyone will become an AI engineer. But in just a few years from now, a large part of job positions will require or reward AI skills that help employees be more efficient and dedicate themselves to higher-level tasks. Especially in areas like IT, where human error can have dire consequences. So what online AI courses are best to get you up-to-speed with this booming discipline?

AI has experienced a major explosion in popularity in recent years, becoming one of the fastest-growing roles in job markets across the world. Indeed, just at the beginning of the 2020, a LinkedIn report identified AI-related skills as the fourth most in-demand skills group among employers. And that was before the pandemic set in.

Since then, Artificial Intelligence has emerged as a compelling choice for students and professionals who want to keep up with innovation and trends. Analytics Insight points out very good reasons to study AI in 2023.

Bottom line: believe the hype. It’s about time you put on your AI boots if you still haven’t done so. Here are five courses to get you started that touch upon some of today’s core AI skills.


Find your next assignment on our freelance and permanent IT recruitment platform, or join Mindquest so you don’t miss out on any job opportunity!


1. Online AI courses : the basics

Artificial Intelligence

Firstly, how comfortable would you feel explaining to someone the difference between AI, machine learning and deep learning? What comes to mind when you hear the words ‘neural network’?

If you are not quite sure, start with the fundamentals. This Coursera course by IBM provides a good introductory overview of artificial intelligence and its many aspects:

2. One of the most popular online AI courses : Python

Python

Python is to AI what English is to Shakespeare’s plays. Thus, this nimble yet powerful language is one of the most popular among programmers and engineers, and, if you haven’t gotten around it already, well – you should.

This course on Udemy kicks off with a Python crash course and then gets into its data science and machine learning applications, covering the most widely used Python libraries and tools for AI (NumPy, Pandas, Matplotlib…):


Need tips on how to find a job in IT? Check out our IT job hunting guide.


3. Machine learning

Machine Learning

In essence, machine learning is the use of algorithms to process data, learn from it and then act according to these learnings. Machine learning allows computers to autonomously learn and improve processes and assessments through experience, without being explicitly programmed beforehand. It’s pretty much ubiquitous these days –from your phone’s predictive keyboard to web searches.

This course by Stanford is a good starting point:

4. TensorFlow, neural networks and deep learning

TensorFlow

Moreover, developed by Google Brain Team, TensorFlow is an open-source library for numerical computation with powerful AI capabilities. TensorFlow is Python-friendly and is currently one of the most in-demand AI skills.   

This video offers a great hands-on introduction to building neural networks with TensorFlow:

The course requires previous Python literacy, so you should not jump into it before learning the language.   

5. Natural Language Processing (NPL)

Natural Language Processing (NPL)

Last but not least, NPL is a branch of artificial intelligence that focuses on analyzing, understanding and producing human language. It is an integral technology to many everyday features of the digital economy, from autocorrects to chatbots.

This Codecademy course provides a practical and project-based introduction to NPL:


Are you looking for IT mission opportunities in the Tech and IT sectors on a freelance or permanent basis? Mindquest can help you find your next IT mission opportunity. Find your next mission by browsing our freelance and permanent vacancies available on our digital recruitment platform.


Categories
Press review Tech Magazine

Weekly News: The Best Language for Economic Research

The Best Language for Economic Research

Python, Matlab, Julia — R. Who would win the battle of the best language for Economic research? That’s probably one of the most common online queries in the programming world. There is just something about humans and our obsession with chasing the very best of the best. 

Discover Python Projects to Try – From Beginner to Advanced

In reality, of course, each language has its nuances and areas in which it shines. Anyone claiming to have a definitive answer on the matter should come up with some solid arguments to back their verdict.

And that’s exactly what two London School of Economics researchers did. They looked at different languages based on the power of available libraries, the speed and possibilities when handling large datasets, and the speed and ease-of-use for a computationally intensive task.

Hint: the winner has a woman’s name.

Thanks, but no thanks

That’s the polite version of what UK students were shouting in front of the Department of Education over a week ago. The cause of their anger was an algorithm.  

University admission exams had been cancelled because of the pandemic. Teachers proposed predicting their student’s scores as a way to compromise. The education department dismissed the idea on the grounds that previous research had proved such estimates to be biased. Instead, they decided to use an algorithm.  

Well, that one turned out to be even more biased. Close to 40% of students received lower grades than what their teachers had predicted, potentially harming their chances to get into their university of choice. Those in working-class and disadvantaged communities were disproportionately affected.

The issue has now been fixed, but it’s a textbook examples of the dangers of AI bias.

Join our community and find your next job or expert in IT


How To Learn Python With Rune

Categories
Growing your career: permanent & freelance IT Consultants

Python Projects to Try – From Beginner to Advanced

Python’s growing momentum is undeniable. Favoured by data scientists and those involved in AI and machine learning, the programming language has risen to the top of the popularity list in just a few years, with a lot of Python projects. A recent study by online learning platform O’Reilly found Python to be the “preeminent” language of 2019. Representing both the highest number of searches and the most trainings contracted through the portal.   

There are many reasons for this rapid ascend. Python is an efficient and easily readable language. It allows developers to create lean code that reads very much like English, while its built-in data structures are user-friendly and fast to implement. Additionally, Python is surrounded by an expansive support ecosystem which offers a wide array extension packages and open-access code repositories.  

As we have mentioned before, these days of quarantine provide a great opportunity to acquire new skills and strengthen your CV. And how best to learn code than by developing hands-on experience with it?  

Whether you are completely new to Python or just looking to improve your capabilities; here are a few Python projects for you to try in the coming weeks.  

Python projects for beginners 

If you are just now jumping into Python, the official Python Software Foundation’s website offers a ton of free resources to begin with. There you can access the language’s official documentation and refer to an exhaustive list of reliable resources for beginners.  

As for projects, you can, for example, start with the list of over 30 beginner exercises at PracticePython.org. They are detailed step by step and offer a separate section for solutions to keep you challenged. PythonForBeginners is another good portal for Python projects and fundamentals. When it comes to automation, Al Sweigart’s Automate the Boring Stuff with Python is a fantastic — and free — work of reference.  

Popular beginner projects include: 

  • Dice rolling simulator 
  • Guess the number 
  • Hangman 
  • Fill an online form 
  • Update and format Excel spreadsheets 

Of course, learning portals like Codecademy and Udemy are another great way of developing your Python skills. In fact, a multitude of platforms have made courses available for free to help people skill up during lockdown. You can find more about it here.   

More advanced projects 

For those who are already versed in the basics of Python, the Internet is full of interesting project ideas. You can get lost in for days. For instance, this edureka blog post contains precise instructions on how to complete a series of engaging intermediate and advanced projects. Among these, you can practice data visualization techniques and get acquainted with popular Python-supported libraries like Matplotlib. For more advanced projects, you can dive into machine learning and deep learning with TensorFlow and PyTorch.   

Alternatively; if you are looking for already developed capabilities to use in your own code or apps; you can of course, always find thousands of Python-related repositories on Github. There are endless paths one can take with Python. From website crawlers to image processing modules or a Spotify playlist generator. 

Sign up to to Mission Contol Center Newsletter

Join our community and find your next job or expert in IT