Posts

Best Way to Learn Flutter (2020 Step-by-Step Guide) : Episode 1

  Flutter has been emerging as a great option for developing cross-platform mobile apps since Google announced the first stable version at Flutter Live. But where to start? In this post, we will cover the step-by-step guide to get started with Flutter. What is Flutter Simply put, Flutter is a framework which allows developers to create cross-platform apps using a single programming language. Flutter can be considered an alternative to the  React Native  framework. The Flutter framework is being developed at Google but it's open to all external contributors. Flutter has been around for a long time, but it started getting more attention when Google announced the release preview of Flutter. At  Flutter Live  on 4 December 2018, with loads of new features. After this, the popularity of Flutter apps grew drastically. Flutter uses the  Dart   programming language  which was introduced by Google in 2011 and is rarely used by developers. Dart syntax is easy to understand as it supports mos

Best Way to Learn Flutter (2020 Step-by-Step Guide) : Episode 2

Image
 In this episode we are going to learn how to use flutter docter and fluttter's package manager Use Flutter Doctor  Flutter comes up with an awesome command line utility to check if your machine is set up for local development. Flutter has  Flutter Doctor  command which guides developers through setting up the local development environment for both iOS and Android. Flutter Doctor inspects which tools are installed on the local machine and which tools need to be configured. Once the Flutter Doctor command is happy, we can carry on creating a new Flutter app. Setting up Editors Flutter development can be done on any editor or IDE of your choice. The getting started guide for Flutter contains detailed information on IDE setup for  Android Studio , IntelliJ and  Visual Studio Code . However, you can use lightweight editors like Sublime Text for Flutter development as well. The choice of editor/IDE is completely up to the developer. Once we have finished the setup for our favourite edit

Best Way to Learn Python in 2020 : Episode 7

  If you want to venture into the territory of Python fluency and take your skills to the next level, then   I highly recommend the “Fluent Python” book . This book assumes you already have a solid understanding of the basics of Python. In  Fluent Python,  some of the concepts that you already learned from introductory books are covered from a different angle, in more detail, and with greater depth. In addition to that, you will learn some new concepts as well. For example, some of the new concepts that you will learn in this book are Higher-order Functions : explains how functions can be used as first-class Thissobjects in Python Control Flow : covers the topic of generators, context managers, coroutines, and concurrency Metaprogramming : essentially this is writing code that manipulates code. Some of the topics discussed here are decorators and meta-classes

Best Way to Learn Python in 2020 : Episode 6

Image
Congratulations! Now you have what it takes to apply for any software engineering job in any tech company in the whole world. You only need to pass this dreaded coding interview. In fact a series of them. If you are at this level, I have written an in-depth article about  how you can prepare for a coding interview . A typical coding interview will assess your problem-solving skills, communication skills, knowledge of data structures and algorithms, in addition to how good and efficient you are at translating your thoughts into code. The best way to pass coding interviews is to give yourself an ample amount of time to prepare. The more you prepare, the better your interview experience will be, and the more likely you will land your dream job. Leetcode  is an excellent resource with a ton of coding interview questions. Leetcode  allows you to submit your Python solutions to the coding questions and get instant feedback about the validity and the efficiency of your solutions. After you st

Best Way to Learn Python in 2020 : Episode 5

  If you reached this episode, give yourself a pat on the shoulder. Because by now, you have the skills that enable you to solve a wide variety of problems. However, something is missing. You are still not seasoned enough at writing  efficient  code. What do I mean by that? For example, you don’t know how to modify your code to make it run faster. You can’t even analyze why it is slow in the first place. This is normal. The knowledge you have learned so far in the previous levels are not enough for you to have a solid understanding of what performance really is, and how to modify your existing code to make it run faster. Don’t believe me? Look at this simple code that calculates the nth  Fibonacci number . def fib ( n ): if n < 2 : return n return fib ( n - 2 ) + fib ( n - 1 ) print ( fib ( 100 )) The code looks simple enough and very straightforward, right? Try using this code to calculate  fib(100)  [SPOILER ALERT: it will take an extremely long time] No

Best Way to Learn Python in 2020 : Episode 4

By now you should be very comfortable writing Python code that runs on a single machine. But what if you want to write code that communicates with other machines over a network? If you want to do that, then you are going  need  learn about  socket programming  in python in episode. And for that I highly recommend you learn about the basics of computer networks first. Here’s  my favorite book . After you learn the basic networking concepts, you can use Python’s libraries to write code on one machine that communicates with code on another. It’s like magic. I still remember the exhilaration I felt the first time I had two laptops communicating back and forth to each other over a Wifi network. Follow these three steps to get started. Step 1: Write an Echo Program In this step, you will use  Python’s socket module  to write a simple TCP server on one machine and a TCP client on another. Make sure they are two different computers and that both of them are connected to your home network. The

Best Way to Learn Python in 2020 : Episode 3

 In Episode you are going learn Concurrent and parallel programing The days of single-core processors are far gone. Nowadays whether you are buying an off-the-shelf laptop or a high-end server for your business, your processor will definitely have multiple cores. And sometimes, your program needs to take advantage of these multiple cores to run things in parallel. This can potentially lead to increased throughput, higher performance, and better responsiveness. But let me be clear about one thing here. If high performance and increased throughput are absolutely crucial, Python wouldn’t be the best language to support parallel programming. In this situation, I would personally prefer  golang  instead (or good old  C ). But since this is an article about Python, let’s keep our focus on Python. Before you dive in and write your first parallel program, there are some parallel processing concepts that you should learn about first. Here are some of these concepts. Mutual Exclusion When you ha