Beware of the dangers of spreading yourself thin

I am going to through this book – So you want to be an embedded systems engineer and It hits me how little I know about hardware. I am left questioning; what have I been doing since?
The answer is Software. I have devoted a lot of time to programming skills. I forget I want to be an embedded systems engineer. I am bothering myself with the intricacies of algorithms. I am spreading myself too thin or am I?
I need to recalibrate, to take my hardware education serious, to do projects, hardware projects. I am done with learning new things in software for now. Hardware beckons.

Personal Project: Leave Roster

Intro
I decided to create a small program to keep track of the people on leave at work. I noticed that the leave roster was computed with excel but it wasn’t smart so I decided to put my python skills to use. This isn’t intended as industrial grade, at least not yet. It is simply an avenue to practise python with a project. A vital part of the learning process!

This program has two major files. The dataleave.py and guileave.py. There is also a loadcsvdata.py file used to load the initial data from csv files into different shelve databases.

Modules used.
WxPython – the GUI components
DateTime – manipulation of dates
Shelve – permanent storage for data.

dataleave.py
All functions dealing with data are found here. Here is a summary of the functions:-
CreateDB(data,shelfname) – used to create a shelve database from data.
ReadDB(shelfname) – return a list containing data from a particular shelve
readname(name,shelfname) – read a particular name from a shelve database
loadData(filename) – load data from csv files into a shelf database
addStaff(staff,shelfname) – add a person in a particular shelf database
editStaff

deleteStaff(person,shelfname) – remove a person from a particular shelf database
staffpermonth(shelfname,month) – calculates the percentage of people in a given department that are on leave in a particular month
onLeave(person,shelfname) – tests if a person is currently on leave

guileave.py
The getStaff (dept) – returns a dictionary that contains details of a particular department

MyFrame class
myApp – This is a subclass of the wx.Frame and home to all the GUI wizardry
Description.

The program starts with a login page. The user needs to type a username and password to be granted access. Next is a page with buttons that have various departments. Clicking on any of the departments opens a dialog with a list of people in that department. Double-clicking on any name opens another dialog that gives details on each person’s leave periods.
Possible Improvements.

*Make it possible to add more than one leave period and edit more than one for a person
*Make use of sizers instead of position vectors.
*Error checking on Dates when adding a person. Check that a person isn’t added twice.
*Check that no leave period is more than 30 days in total.
*I think I abused the use of instance variable… too many self.functionName()

*Make it sexier 😉

You can find the github link here

What was I up to In February?

I completed the Leave Roster Version 1. It still requires a lot of work but I will leave it as it is for now and come back to it later. The Important thing for me was putting head knowledge to work and I intended to do more of that in February. I will be looking for projects to put my skills to use.

I finished a couple of books.

  • The Obstacle is the Way by Ryan Holiday
  • The Dip by Seth Godin
  • The Organized Mind
  • Blink by Malcolm Gladwell

I went to through the C programming language and paid attention to the exercises this time. I have done a couple and I have left others to be completed later.

I started my morning routine. I feel like I am in better control of myself, leading myself well.

February good!

 

 

Book Review : The Richest Man in Babylon

I loved this book. I picked it up because I need to take my finances seriously. I need to learn about money.
It contains commonsense principles but I liked the parable-like nature of it. That made the lessons sink in.
You have to save no matter what you earn. 10 percent must go to your savings. Invest your money wisely. Develop your capacity to earn. Let work be your friend. Guard your savings from loss. Pay your debts like a man.
I will definitely take savings more seriously

Book Review : The Obstacle is the Way by Ryan Holiday

It’s the first Ryan Holiday book I have read even though I have been a fan for quite a while (Information,Knowledge and Experience ).
The book sets out to describe how we should treat obstacles that we are sure to face in our lives. It is on how to turn adversity into advantage. It is a must-read for everyone. A guide on how to approach life influenced by the Stoics.
I absolutely recommend and intend to re-read often.

Book Review : So good they can’t ignore you by Cal Newport

I have to say my first impression from the first 50 pages was that it was garbage.

“Don’t follow your passion.”

Lol!
His examples weren’t convincing to me. In fact, I could use some of the examples to make a case for passion.
Passion isn’t some divine thing. Some people don’t have a passion and perhaps this book will resonate with them and be helpful but to bash passion as even “dangerous” is a whole lot of bladderdash . The premise that once you become good enough to be a master you will love your job is flawed too. There are counter-examples.

No one is saying wake up tomorrow and with no experience at all decide you want to be a chef. Have some common sense. Have a plan.
It was nice that he eventually moved off bashing passion to talking of craftsmanship which was great. I am still yet to understand how one is going to push through the hard times without some passion.

My views are – follow your passion if you have one. Be strategic, use common sense, don’t just drop out and expect it to work out. Things don’t go as planned, passion or no passion. Passion isn’t to blame/
If you don’t have a passion, just keep on working. Keep exploring. You might find something compelling enough you want to be good at it.

P.S. I was so riled by a book but I’m glad it proves to myself that I think as I read stuff. I was just saying no in my head for the first fifty or so pages

January Summary

It is 2016. January was paradoxical, seemly slow and fast at the same time. We are fully into 2016 if we weren’t already. I will like to summarize some of the things I have been up to. I read six books in January. (round of applause please) They were Geek Heresy, What if?, The  Innovator’s Dilemma, Mindset, Gun Germs and Steel and The Rise and Fall of the Great powers. I plan on writing summaries/reviews on these books. I realize I am going to have to shift focus from my intensive reading of everything interesting to more of doing stuff, using-knowledge-I-already-have . I have some projects lined up. 
This month, I started practising C, first with Project Euler but I ran into difficulties with a certain simple program and felt I needed to brush up on my C. I have committed to do all the exercises in The C programming language book (popularly known as K and R). I have read the book before but I realize once more that mere reading isn’t enough. In fact, you havent read a textbook if you don’t do the exercises.
For next month, I have a couple of projects in mind. Hardware and Software. I need to complete an outstanding project I was commisioned to do. I want to build on the car chassis I have. For software, I am working on a simple staff management program – I got the idea after I noticed that the leave roster where I work was computed manually. The goal of doing this is to practise my python and teach someone else. I will make it easy to extend and modify later on. For example, in this first version I would be using .csv files to save my data instead of using a database solution. I just want to use my current skillset to get it done. I am also thinking of creating a small program for myself to keep track of books to read or I have already read. I also need to sign up for the GREs and really do in-depth research on grad school. NYSC is rouding up fast. Still yet to have very solid plans for life after but I have to be fine, my hard work has to pay.

Thoughts on Mindset by Carol Dweck

I was 13 pages in and I already nodding in agreement to everything. Mindset matters. It frames how you approach life.
The more I read, the more I felt like I was in the two camps, the growth and fixed mindset camps. Im in the growth camp, because i believe that I can learn whatever I want to if I put my mind to it. I believe I might take more effort than some people but I will improve. I have shown this in my efforts to learn french, learn maths, learning to draw. I didn’t start out great (or obviously talented) but I improved and got quite good.
On the other hand, I do have traits of the fixed mindset. I fear failure. I have found myself often in the mode where I feel if there is a risk of failure I shouldn’t bother. I find it hard to stretch myself beyond my comfort zone. I sometimes get frustrated with hard stuff. Since reading this book, I realized how much I call myself stupid over little mistakes I make – a key property of the fixed mindset.
The book reinforced a lot of lessons I have been learning lately. I am
beginning to look at everything as a learning experience, to take risks.
I think part of it has to do with trying to leave up to people’s expectations. You mustn’t appear dumb. They say you are smart. Yes, you get confidence boosts from praise and awards but it can also mean you feel the need to keep up with that self-image of being great, perfect even.
The fixed mindset eventually has a negative effect on everyone – both those deemed smart and those not. It means being stuck in a mould with no growth.
A great way to develop the growth mindset is by reading biographies of successful people. It puts all the ingredients required (including effort and luck) for success in perspective. All in all, a great book that I plan to reread.

Book Review : Geek Heresy

Not sure exactly how I heard about this book but I am glad I did. This book addresses the notion that technology on its own can solve our problems. It addresses claims like “All developing countries need is better access to the internet”. “Every child needs access to a laptop and they will be able to learn much better.”. There are people who believe in the power of technology, who believe all problems can be solved with technology alone, this book provides a counter to these narratives by using quite diverse examples and pursuasive arguments.
The key thing is that technology magnifies what is already there, if there are already good teachers it will magnify their efforts, if there are bad teachers it is of no use at all, it might even be detrimental, a distraction. We need to move from  packaged inventions, total solutions, quick fixes to growing and developing human resources.
Social change begins with the individual therefore any lasting and sincere effort must begin with developing people through mentorship. This is hard, time-consuming, difficult with results that might initially be hard to measure. These efforts take a long time to bear fruit and all of these make them much harder than packaged inventions but they are the only way in reality to social change. Good things take time but with our hearts in the right place and our desires transcending the mundane struggles for survival, we can reach out and help other people, fight poverty and provide better education. All of these with long-lasting results! I recommend you read!