So, I joined a company as an intern to work as a Flutter developer. This was a startup company based in India that serves customers by producing software products to solve an issue or to make ideas into reality.
How it all started?
I was already doing B.Tech course on a university but due to covid I spent nearly 2 years on online classes, which means I usually had more time than physically going to the campus.
Now, I was doing all sorts of silly projects like,
I know I haven't posted a story since Dec, 10. That’s because my university just reopened and I haven’t really created a good schedule and also I am doing a internship while trying to convince my faculty that my mini-project is worthwhile😅.
About modifying my daily schedule,
As the university just reopened I was on a task to modify my schedule to allow a massive 6 — 7 hours academic time in my schedule. It might sound small for some people but for guy like me who likes to go to bed at 10 and wake up at 5, this is far less time and modifying my schedule to allow this is so hard for me unless I am ok with pushing my sleep schedule.
But then, the university got into lockdown mode again after 10 days of reopening and now I am again doing online class (which sucks😔). But also this means I wont have mush support on doing lab exercises and assignments from faculties and friends.
I still haven’t refactored my schedule.
Although sometimes you need to break out of schedules, most of the time schedule can improve productivity and general mental health by avoiding cascading tasks at the end of the day.
“better safe than sorry”… This doesn’t apply to software development very well or at least at most part. But if you are wondering how to choose a language or a tech stack this article should help you.
So, choosing a language is like choosing a name for your child, if you don’t get it right he is gonna have a bad day at school. You can change it tho but it takes a lot of time. Just like that choosing a programming language for a project is so important and should be planned before. But how do you do that, I mean there is around ~700 programming languages, what to choose from?
Mostly every programming language comes with its use, as C++ has been or being used in games, OS, kernels, and more… and python is a language is being used for automation, AI/ML/DL and data science. Node.js is being used for non-blocking servers, APIs, and most anything related to web development.
Now the confusion being is what to choose? To be honest, each of the above programming languages can do what other languages can do like C++ can be used for AI/ML/DL, and python can be used for making games and kernels, heck you can even build a fully functional webserver with just C. But, do you really wanna do that?
DISCLAIMER: Learning faster isn’t about skipping topics and being half-boiled in the domain. So, don’t think I am gonna show you some shortcuts. Instead, I am gonna show you ways to put more effort than you normally do in the same amount of time which will also teach you a lot in minimum time.
In recent years it seems like everyone just wants to hop into programming whether for their own projects, to show off, or just thinking CS is easy for some reason. This article should be the general idea of how to learn any CS topics as every topic can go deep wild and these steps should help you learn those faster.
Have a meaningful reason
It doesn't matter what you are going to do, if your reason is weak you won't be able to achieve it. Have meaningful reasons like expanding your knowledge or building a startup or a simple app or becoming a freelancer. If you think knowing programming will make you look cool, reconsider it… It's just a line of work just like carpeting, driving, and cooking, it doesn't matter what you know but what you can do with the knowledge and that is why you need to have a meaningful reason.
Also, you cant build a Facebook at end of a coding BootCamp I mean, with the current technologies like AWS, Firebase, GCP you can build a Facebook if you put in the work but again it destroys the core principle “Have a meaningful reason” like Facebook is developing since 2004 with multiple developers and thinking you can build all of it in a single sitting isn't practical.
If you are still reading this article, GOOD JOB🎉🎉 Now continue to the main topic.
In this article, I will try to teach you the mistakes I’ve done on my recent project. This topic is quite subjective and can vary between people so, here are the mistakes that I wanna share which are common to most developers.
I know you heard this word enough times from other people not just from developers but the thing is apart from sleep helping your body to be healthy and reduce the risk of heart disease and more, it helps you fix bugs. Yup, I said it, you can fix a bug just by taking a nap.
That doesn’t mean you need to knock yourself every time you see a red squiggly line in your IDE, if you feel tired just take it easy… I believe in you, you can do it.
Distractions are not just Twitter/Instagram notifications it also includes people and things around you. Anyone who is actively asking you to fix their printers and the old window squeaking on the breeze… put a stop to it.
So I was a python programmer for a while and I always wanted to make mobile apps even before I started coding. But even after learning C++, Python, HTML/CSS I always tend to think mobile app development is hard. This is not the reason I chose flutter but we will talk more about that later.
I transitioned to flutter as a non-mobile developer and have around 8 working months of experience in Flutter. At the time of writing this article, flutter was at the major version of 2.0.
How I started with flutter?
I already had some experience with JS so I was thinking about using Ionic or React Native, but while I was deciding I came across flutter. With the help of some articles, I was convinced that If I choose flutter I need to learn a whole new programming language called “Dart” before I start making apps. Also, I kinda like Google’s projects more than other projects so I was getting skewed towards the background of the project rather than the use of the tool itself.
Now, with that being, I was more convinced with flutter because it had faster performance out of the box, great support for attractive UI’s, and the number of platforms it supports. One main reason is that I found flutter has more easy and understandable tutorials ever, I mean Flutter itself has a YouTube channel to teach about almost everything about flutter.
DISCLAIMER: In this article I will explain the working of blockchain in a very abstract level. This article is not meant to explain every aspect of blockchain. I will reference some sources in the end for better knowledge.
So, what’s up with this new buzzword “Blockchain” and how it powers the cryptocurrency… Bitcoin, Ethereum, Dogecoin?. And can you make one? YES. But read the full article.🛑
Blockchain is a decentralized distributed digital ledger.
Ok, why do I care? Blockchain may be powering the cryptocurrency but it’s not just that.
To maintain data integrity of healthcare systems, Original content creation, NFT’s, and so on.
In the last story, we created a new repository in GitHub and pushed our code to the main branch. Now in this story, I am gonna walk you through the process of looking back in your development and testing new features in your project.
You would’ve updated your project and pushed it to your repo so many times by this time. Each commit you made is a snapshot(or a version) of your project. Now, let’s say you wanna look into an old snapshot for a particular line of code, generally, you will go to GitHub and click commit history to view the changes but how can do that in the command line?. Let’s start with some logs…
This command gives you a detailed list of commits that you or your collaborators made. Each commits contains a random alphanumeric string with a length of 40 characters, this is called a hash and this is used to separate each version and can be used to point to a certain snapshot of project life.