Adulting

Hello ! Since most of you know I recently started working as a full-time developer, I did write a blog about it too “Makings things count” if you want to read about it, I would link it here.  This is just a life update after five months into the job.

This won’t be a technical blog but moreover some life lessons that I took from people around me. People might think this blog is bit obvious and simple. Yes, these things are simply not but not easy and sometimes in the midst of daily rush we just tend to ignore the most obvious things.

So here are some things that I think everyone who just started out or is about to start his career should definitely think though. If you’re one of them happy adulting 🙂

Get used to being bored: When your free trial of life expires you do have to think about a lot of stuff before making any major life decisions. So most of the time you might find yourself doing mundane tasks just because the output of this task can help you move to the place you want to be in life later, this might your first job that you thought was cool but later turned out just boring or a lazy Saturday afternoon where you could easily binge some x show but instead you are doing errands. The point I am trying to make is that it’s okay if you feel bored. What’s not okay is that you’re not putting enough effort to get out of those boring situations where you have control over.

Improve Daily: People who get used to being bored for the situations they could have avoided or can avoid if they put in enough efforts don’t think of self-improvement much. Committing to even 1% of work daily can help you a lot in the long run than doing nothing daily and to do that you need to build a consistent system in the right environment. This could apply both where you live and where you work. Talking from personal experience the place where you live or spend your time after work matters a lot at least for me because it would be the only time you can spend on yourself to plan out what can be done, actually work on it even it’s 30 min a day to 2 hours a day. Some peacefull work done can do wonders if you do it consistently.

For example, the first place that I use to stay with I shared it with people that I did go along well with but did not share the same ideology was a total disaster for me. Most of the time at home it would be a hard time for me to work on myself with all the nonsense that I had to deal with. Trust me on weekends that would reach over the top, so I eventually decided to live alone it was costly but I did manage but lost all my savings in the process. It but that did not help either though, initial days were okay but it got depressing very soon. Later it became a pain dealing with mentally. Luckily I found a place decent enough with the like-minded people.

So from the past few weeks I have been able to give some time on improving myself, it’s not much half an hour to forty minutes before work and an hour and a half after work. But I bet it would add up to a lot in the long run. Plus hopefully I would continue writing regularly, I have started making notes just to keep up with writing part. Who knows, I might format them properly and with some personal touches put them up as blog posts. For now, they are just markdown file in Github.

Make compound interest your friend: A friend of mine recently told me that savings are like a hole and your income shovel that helps you dig it. I guess he did use that analogy because during some rough time your life it would be that hole that you use to hide and wait in for the rough time to pass. It would be up to you how big of a hole you want to dig so that you can comfortably sit and wait for the chaos to settle down on the surface. I am among the few lucky ones that got to know this at an early stage of my career so that I can start digging my hole however deep I want.

For all the people who are just starting out and reading this, I can’t insist enough more savings. Start saving early. Rest would be taken care of by the compound interest.

Stay Motivated: Small wins and small achievements make big wins learn to enjoy them so you don’t get demotivated or disappointed. Sometimes it’s not you it’s your system so you should always improvise on how you do things in a particular environment and try to build a system around the most productive environment. Your small efforts are not noticeable most of the time, it takes some time before you realize that you are actually doing something good, so just stay keep working 1% every day.

Love your job, not the company:  Recently I read some conversations on #dgplug which made me think, the reason I work is mainly to be better at my job, grow in the field of interest I want to be and to save so I can dig up the savings hole how I want to be because this savings money would not only help me in rough times but would also help me in fulfilling my long term goals that require some large amount of money. If I sucessfully do these three things I would be happy. I can improve my skills by working on them consistently but to move in the right direction I would obviously need an environment where I would showcase my skills hence relevant work and get paid so I can fulfill my dreams plus can constantly increase the size of the hole.

So if you’re shovel is not helping you and you’re getting a better environment somewhere else with a bigger shovel to dig the hole you should take it if it’s possible and you should not put emotions into it.

By this, I am not saying change your job every second month just be curious and clever, improve daily. Just appreciate what you do and do it with uttermost passion.

 

 

 

Making things count

By the end of last year, I graduated and as I like to call it my life’s free trial ended 😛 and starting this week(21Jan,2019). I had my first day of work. Simple things have been complex in the past few months but I guess I survived with a lot of help thanks to good people around me.

So it all started by the last semester by the starting of Feb 2018, I had done a couple of bad interviews and even if the interviews were good I wasn’t confident that I would fit in. Maybe it was imposter syndrome or something else I don’t know. Later by graduation, I ended choosing unemployment and giving some more time to just code random stuff. 😛 The main reason behind writing this blog is to give you the up’s and down’s so you can get a reality check of what’s actually like because I have been talking to some of my college juniors who are now I in the same phase where I was one year back.

Just a bit of background on me to get things very clear from the start, I started coding in Python seriously a bit late like by the start of my third year in college, by seriously I mean like coding daily or maybe looking up small patches in upstream open source projects. I had been active in the local meetup group PyDelhi, ILUG-D and had been introduced to #dplug recently so I wasn’t complete noob in the world of open source tech in general. To put it nicely I was LAZY, I am not proud of it but yeah <pip install regret >.

So the journey started after college by the start of the first of August, I had some family problems in July so getting used to it back home took some time. I had read a lot of blogs about people taking a break and learning to code but most of them were about someone who had not coded in their like and in coming six months taught themselves to code and got a job so could not relate to it. So starting the first two weeks I use to check out the syllabus of coding boot camps and roadmaps for becoming a backend engineer, so here is my first mistake that someone should really avoid while traveling on the same road because once a wise friend of mine said

Life is too small to make all the mistakes yourself sometimes it’s best to learn from others mistakes.

So coming back to the point,

Talk to people even if don’t want to:  I was kinda lucky to have got a college in Delhi because Delhi has some awesome tech communities but when college ended I went back home, Nainital and was missing the meetup culture. I would still talk to people #dgplug, thank god it’s an online community otherwise I would have been completely lost. Even though I use to talk to people I did not actually use to ask for help in figuring things out maybe it was just what these people would think or maybe it was that people would ask me not to do it and get whatever job I was offered ASAP. This changed when I read 6 Bags and a Carton   by very own @fhackdroid . 😛 It was that moment I thought I am lucky and this wasn’t a bad idea. Later when I was staying with him, Sayan, Chandan, Devesh, Rayan during the time of PyCon India 2018 I opened up on what should I do make the most of the time and he with Sayan helped me a lot to make things clear, what should I be focusing on , what projects can I do and also suggested to read resource centre blog of people who took a break and went to Recuruce Centre to work on their tech skills.

So the point I am trying to make is you should talk to some people around in community even before you start planning that would eventually help a lot in making a concrete roadmap for the next x months you take because you would fail a lot, will be diverted and trust me even sometimes question  that you took the right decision or not. During those times it’s best that you have some experienced people helping you out and what I think is if you have concrete roadmap these feeling will be shrunk to a size where you can just ignore and work.

Time is money: I initially planned for an entire year! God knows what I was thinking. This could be because of the first problem I mentioned of not talking to people, but Yes unless an until you have a job waiting for you or you want to focus on something a subpart of a particular topic trim down the time because it takes time to get stable after your gap. In my honest opinion, three months are more than enough unless an until you’re just switching to learn to code and have not written a single line of code or know nothing about it.

Blogging to success: At first, I use to think that what’s the point of blogging when I see all the awesome blogs out on the internet which would be far better than me. But later I realized it’s not about your blog being the best it’s mainly about consistency because what I think is blogging helps in two ways:

1. It helps you structure your thoughts that you can explain to ‘n’ number of people easily.

2. For all the research you do behind the blog you get to learn a lot and that learning sticks for a long time plus you get a backup of your notes to look back.

I would recommend to someone who is talking his off to code/learn/hack/ build silly stuff to at least write a blog once three days.

Document the shit out of it: I was heavily inspired by OBM so I started documenting my daily working habits, I did set goals and future week goals but the problem I faced was I over-engineered the shit out of it which at some point became tedious. I maintained a bullet journal with waka time installed in sublime text to track my coding timings and also was doing short sprints of 25 min each every time I use to sit to code or read. Things got to a downfall pretty quickly because it required a lot of effort to just maintain the whole workflow, I am not saying it’s bad but it wasn’t for me. I did a lot of iterations of the whole bullet journals and found the simplest one to be easy to maintain and easy to follow.

So I would say don’t get sad and totally give up the idea if you’re not able to follow up the whole idea of documentation, just keep evolving the process until it suits your needs because this will definitely help you realize how much effort have you put in the past and how much you have to put in. This trusts me helps in times when you feel like you’re not doing enough work or you made a wrong decision.

One last thing. All the very best, if you’re talking that road just remember to work hard and things will eventually plan out. If it did for someone like me who had no clue, 😛 you at least have a heads up on things.  🙂

Finally, things wouldn’t have been the same without the help from #dgplug and I definitely owe a lot to them.  The people in the community are always ready to help you in a correct manner not spoon feeding you but making you independent. I got a lot of inspirations from different people in the community to work hard , I hope I can follow the same footsteps 🙂

 

To start, just start !

It’s almost end of 2018 and most of the people start working on their new year’s goals, well I am doing that too a bit early I guess 😛

I usually plan to write A LOT but all the time what I have seen is that once I start a blog and work on it, I give up on it either mid-way or sometimes it doesn’t reach the half-way mark the reason being I want it to be just perfect. What I mean to say it that I write blogs with the uttermost detail like the last blog that I start and could not publish was of the PyCon India 2018. I wrote a lot in it and gave almost every good detail I remembered from the event but like most of the blog, it could only make it to the halfway mark.

I don’t know what it is either I think I have a massive audience that eagerly waits for my blog or I wanna be that kid that writes awesome blog everytime he sits on the computer to write one. Whatever it is! I wanna change that. I want to write blogs frequently. So while finding a solution to this problem I remembered some lines from a podcast  CodeNewbie, in which Julia Evans was the guest. (she writes awesome blogs, go check them out if you haven’t ) Julia mentions that while she was in Recurse Centre she picked up this technique of writing small bit of blogs every day but the problem was she had a lot going on during that time so she didn’t use to get much time to write but she managed to that by writing consistently without thinking about much of the size of the content or thinking of writing just the perfect blog.

The thing I took from the conversation was to write frequently without worrying much about the factor and it’s not like many people read my blog so they would just find me to insult about my poor blogs, haha!  Only a handful of good people from #dgplug read it 🙂  so I got nothing to lose.

Things I would follow from now it:

  1. Keep the blog short and crisp 400 words or less
  2. Blog every second day, I do read a lot these days mostly tech so I can put those notes up in the form of blogs that would help me in the future too.

So yeah hopefully you will be seeing a lot of my blog(mostly bad in the starting so I apologize in advance) from now 😛

Grokking Algorithms

There are some books that you suggest to every person who asks you ” How should I start with … ?” Well being a recent graduate of yet another engineering college I have been asked a few times, “How to start with programming? Can you recommend some books ?” to those people I generally recommend this book with Python for you and me followed by “Jokes on you mate, I am as clueless as you are about programming 😛 ”

To justify why I recommend this book to everyone who is starting with programming; here is my short review and if you want a one-liner I have added the TL;dr version too.

Grokking_algo

TL;dr When a comic book meets a programming book the result is grokking algorithms.

I have broken down the review into very basic pros and cons list that should give you the idea of the entire book. So starting with the pros:

1. Visualization is the key, one of the book’s strength lies in the neat sketches you get on every page with the unique way of storytelling. So while you’re busy figuring out the story and looking at the sketches, the author quietly passes those computer science fundamentals that would be taught in a boring lecture, which seems so fascinating and easy while reading the book.  For example, in the hash tables chapter, there is this one character  Maggie who work in the grocery store and knows all the product prices. So instead of searching the price catalog, the cashier can instantly check the price by asking her and we can say as in fancy computer science term, she can give the price in O(1) times for any item no matter what!

Maggie

One more example I could think of it the way it relates folding paper with binary search where the search space is divided into half just as we fold a paper in half every time we fold a paper.

B-search

The book is filled with such similar stories focusing on small but important concepts.

2. Short and crisp exercises, after every chapter there is a recap of major points and a small exercise of hardly 10 questions which are a blend of code and theory concepts and are enough to practice what you learned in the previous chapter. Plus the code is available on the GitHub repo and the answers to the theoretical concepts are printed at the end of the book. So it saves time and energy of searching for solutions online.

3. Great supplement books, although it is a good stand-alone book for a beginner programmer who is just starting out with python and is interested in algorithms but I believe this book will be best suited if you read it with some standard book because it majorly focuses on the concept and somewhat fails to go in much depth if you’re taking up a course of Algorithms in your college or you want to know more about a particular topic like hash tables, greedy algorithms etc.

As much as I love this book there are some cons to it too 😦

1. Expensive, the major drawback I found is that this book is a bit expensive, for a freshman it’s fine because he is yet to learn a lot and this book offers a good head start but for an intermediate user it’s still a big deal.

2. Too basic for intermediate programmers, I picked up this book in my last year of engineering when I had a basic understanding of the concepts explained in the book so I wasn’t that amazed what the book has to offer as it lacks the depth in the topics covered but I was amazed at how easily they were explained.

The above six points cover all the major section of the book and should give a brief idea about the book of what I thought it’s strength are and what it lacks.

Book Rating: 3.5/5

So if you are starting out as a freshman in college, starting an algorithms course or are just curious about algorithms with a decent saving left around that you usually spend on partying 😛 give this book a shot, you won’t be disappointed.

 

ILUG-D Meetup

PANO_20170813_134559
Saurabh talking about problems with TOR

Indian Linux User Group Delhi (ILUG-D) hosted their next bi-weekly meet up on 13 August at Innov8, CP and on the last PyData meet up Jatin(@cocoa1231) inspired me to attend the LUG meetup.I have attended the ILUG’S meet up but it was mainly a combined meetup with PyDehi and Linux chick India. But that being said I was excited for the meetup because they had two hands on sessions on Arduino and RasperberryPi(Rpi) by Shashank and follow up Hackathon on “Building and utilizing a Network of Single Board Computer’s (Raspberry Pi’s and alikes)” by Raju Devidas. I being a complete beginner who hasn’t worked with any hardware or single board computer couldn’t get a better chance to get to know about those technologies.So in the morning, I picked up all the hardware I had including the wifi adapter and an Ethernet cable and left for the venue.

The meetup started off with people introducing themselves, when did they start their Linux journey and most importantly why were they here ruining their beautiful Sunday morning sleep 😛

The first talk was from Manas Kashyap on his experience with FOSS. He briefly described to the attendees about the FSF and how anyone can contribute to open source. The key point I took from his talk was about Krita an open source tool that was an alternative to GIMP and Inkscape in Linux and I have had a lot of hard times with Inkscape so I was excited to try out Krita.

The second talk was on Problems with TOR by Saurabh Shandilya, host from Innov8. The talk started out as a regular session where he explained all nitty-gritty details of TOR and it’s network architecture but later it turned to more of a general Q/A discussion on TOR’s problem that general people face who use it not for the deep and dark web but to anonymously browse the internet to put their unbiased opinion in public because they don’t have access to open the internet.

Break for snacks, thanks ILUG-D for free snacks 😛

Now the second session was kind an interconnected session where Shashank took us through the basics of Rpi and Arduino where he explained the whole architecture and even gave some hands on session on how those devices work with some add-on like different motors and led. After everyone was comfortable with working on the devices Raju started the challenge sprint,where people used those Rpi knowledge in the previous session.

We were broken down into teams of 6-8 people and given a single board computer with two challenges first one was common one to set up a server and host a single page website and the other one was a bonus challenge in which we had to choose between two,one was to setup a media playing server using Kodi or setup a file sharing server using Nextclould.

Our team was “lightyears” which had 6 people out of which three were complete beginners, one was working a sysadmin and the other two had done a basic project using Rpi.

lightyears
Mohit hacking the web page and adding CSS to the page.

We started on our first challenge but faced a lot of problems, Rpi wasn’t connecting to the network and if it wasn’t connected we couldn’t access it to create a server forget about hosting the web page.Later realized that Rpi was using the host name and password from the previous network it was connected too. So we manually accessed the interface files and changed the host name and password. Now we used ssh to access the Rpi, using the CLI we accessed the apache config files to get the directory of a webpage that it was showing again it had files from the last project.After all these things and with the on again off again Wifi Network we managed to complete the challenge one. FYI we were the third team to do it 🙂

site
Hello world webpage to complete challenge one

The bonus challenge was a bit tricky one we choose to host a media server using Kodi and as we were downloading the packages for Kodi and Sagar briefing us on the task. We realized that the time was almost over and only one team was successful to complete both the challenges. So wrapped up 😦

The last session was hiring and pitching session where three companies pitched for job/intern offer and one guy pitched for an internship.

After the meetup, few folks went out for a feast and I totally missed it. DAMN!

Overall it was a great meetup.Learned a lot and being a guy with no knowledge of RPi to the guy who knows the basics of it and can host servers on it. I call it a weekend well spent 🙂