Wednesday 23 December 2015

The Software Industry: Unlocking the Door to Enter

How newly trained professionals sink or swim into the software industry
Less than 6 months after I completed my first set of software qualifications and certificates, I can say that the more I learn, the less I know! This realisation has led me to use every opportunity I can get to learn about software and understand what makes software tick.
In my continuing networking journey, I have had numerous conversations with senior and/or experienced software professionals who have on balance been very helpful and generous with their time along with their knowledge. However, there are some times when I left a conversation more confused than I should be given I don’t have a learning difficulty and my inquisitive questions were clear enough. An example: I was at a networking event just under a year ago as a student and asked an experienced guy who was talking about Lambda functions to explain how they worked. The answer was along the lines of ‘Well…… you get an Array or a List and you blah blah blah with taadaaa and then if your magic wand is working, you get hocus pocus and TAADAA… you have LAMBDA…’.. so needless to say, I smiled, said nothing walking away with the impression either he was an idiot or I was! Since then, I covered lambda in architecture and got to know in high level terms about it and the anonymous function it provides with the ability to process data on a once off basis if required. I just coded Lambda on the Code Academy course on Python, which brought me back to its usefulness and pondered how new entrants to software truly sink or swim to a place of traction for their skills, where they become recognised and employable software professionals.
So, I submit that new entrants need to prove themselves in their ability to code professionally by:
  1. Learning how to code well in at least 3 (2 OOP/ 1 Functional) languages along with SQL and understand Database Administration (aka DBA)
  2. Learning the principles of Project Management, Software Development and Web Development
  3. Becoming skilled at coding scripts
  4. Becoming skilled in Object Oriented Design (OOP)
  5. Becoming skilled in Functional Programming

So why do some software professionals apparently think its ok to confuse the new guy instead of clearly helping them or just saying “sorry bro, I don’t know, but it’s worth finding out?” I guess human nature is partly to blame along with the bewildering amount of content a software professional needs to know.
As the new guy to the industry, I think this to be a widespread human phenomenon after my prior career in management, where dealing with numerous issues arising from ‘people politics’ was a common task. Focusing for a moment on the wider business world, what I observed was the inability to admit confidently one does not know everything and seek help can often contribute to the reasons why companies suffer strategic setbacks, which of course is resolved in different ways. Point is… if we all use what we know as a “true north” pointer to what we need to know, then this issue would not be so common in today’s world. Sizing ego to knowledge and skill set is a hard mastered skill but when mastered, it produces a penetrating clarity that serves the individual well over time.
So, on the flip side of good practice, bad advice is much more damaging than no advice, which is why I think we as software professionals (training and qualified) should follow a standard that effectively bans hot fudged and confusing answers by doing the following:
  • Communication: Understanding the question, if not ask for clarification
  • Honesty: If we don’t understand it, we confidentially admit it as an act of virtue, not an act of vice
  • Continuous learner: We collaborate to help others and ourselves in the uncovering of the solution, for to help our fellow programmer is to help ourselves
  • Community: We contribute and help out where we can with open source communities believing we are stronger together by bettering the quality of our understanding through sharing our insights
  • Policing: We challenge the hot air merchants who pass as programmers but think its better if the new guy doesn’t get too good at his job in case they may look bad. Fact is that stone walling the new guy IS BAD!
  • Fellowship: We share our passion, our belief in the pursuit of excellence, our ethical values, our skills and our time freely in the knowledge that others freely do so with us!
  • Title: We become our own community under one moniker, being that of programmers!




If we believe in a future underwritten by software, then it makes sense that we stock, not block the rise of new software professionals through community, company mentorship and just being helpful in a clear manner. If we bring the right attitude with us every day, we develop the right culture which will pass onto the new incumbents as part of their cultural identity as programmers. It’s never too early to start building, so as software builders, today’s labour building clarity and community will become tomorrow’s cornerstones for something great! V2.0 awaits! On that positive note, happy Christmas everybody, see you in the new year with my first 2016 post on my personal site (blog) and on LinkedIn!


Sources/Credits
Pics;
Credits;
DBS for pic (& educating me in software)

Wednesday 16 December 2015

Python as a Software Language - Does Sexy ever go out of Style?

Python’s lineage in science defines its past, but does it define future direction? Is Python 3.4 here to stay?



There has being allot of talk coming from certain quarters about Python being a dying language, which of course is not true. Python’s adoption is increasing and since finishing my last course in Software and Cloud Technology, I have heard that Python technology, community and jobs becoming more plentiful, which is great news indeed (...if you like groovy software!).


All computer science or software students will tell you that Python is a dynamic language that is learnt after learning strongly typed languages like C# or Java. For instance, I learned Object Orientated Programming (OOP) through C# at college and a little over 6 months later am programming in Java and Python alongside other languages at entry level. This “newbie” first impression of Python (compared let’s say to C# and Java, which are similar to each other) has led me to to consider it a sexy language for the following reasons:
a.              Syntax is concise, you literally can do more with less. You don’t have to programmatically write a novel to make a programmatically correct point!
b.              Don’t have to worry about excessive {wrapping of methods} making methods more readable
c.              Function nesting is actually fun
d.              Dynamic typing of data types allows you to move through variable declarations much easier and variable typing is smooth allowing good data typing to take place dynamically. E.g. int x = 12; in C#/Java is x = 12 in Python.
e.              Mathematical and Scientific libraries are awesome which is a clear advantage over general purpose languages like Java or C#. Am only scratching the surface of libraries like numpy and scipy but intend with time to get more immersed in them.
Downside for me compared to Java and C# is the following:
  1. Interpreter language so you need to run it to see a programming mistake. Don’t run your program regularly and use good development techniques, you could be forever debugging your code. Compiler warns you when typing of certain problems in Java and C#
  2. For those like myself who are not gurus yet in the language, we code heavy using the libraries and intelisense. Better IDEs for little to no cost to compete with Java and C# would bring more new (and poor) programmers like myself to the language.
  3. Python’s original use case is scientific but it’s very good for example in web development. Wider adoption due to its “science/numbers” reputation may be slower in my view than it should be.
  4. Python 2.7 (established and awesome) V 3.4 (why are we all not using it?). Transitioning to Python 3 is a very long process with 2020 as the cut off date for supporting Python 2 according to Thomas Robitaille’s article reporting on his Python adoption survey.
So, on the primary use of Python 3, Thomas’s survey 2012 (313 respondents) saw Python 3 uptake at 0% rise to 17% in 2015 (781 validated respondents) for primary use, which is a note that its slowly rising in adoption. There is a myriad of reasons why it is such a long process and a slow rising number on Python 3. Some of those reasons are as follows:
a.        Scientific libraries are fully compatible with Python 3 raising that number from 0%.
b.              Some use-cases are apparently not supported yet in Python 3
c.              Python 2 is still being used in training for the language (online & classroom)
d.              Company migration is not as fast as it could be from Python 2 to Python 3 restricting what version developers use
e.              Windows use of Python (originally on Linux/Mac) is up-to 10% thanks to continuous integration testing from developments such as AppVeyor giving Python further penetration power into Enterprise.


Here’s the kicker, when an open source language has two stable versions that are popular and is strongly supported by the community, it delivers a ‘slow burn’ transition possibility to Version 3 by 2020, when it just may outclass all others in areas that would not normally consider Python as an option. Even now, Python’s use cases has expanded from its core scientific beginnings to do things like web development to calculating the distance between stars in other galaxies, so it’s not hard to why one may term it as sexy language. Why not leave your opinion. Is Python a language worth learning?

Sources/Credits:
Pics;
Credits;
http://astrofrog.github.io/blog/2015/05/09/2015-survey-results/

Wednesday 9 December 2015

Meetup.com - An evolution in community

Successful networking from the Country Club to Meetup.com is about community. Get the most out of yours today…
There is no doubt that despite the luxury branding of country clubs, the real value of membership lies in the networks you build there. Such networking has been going on since the dawn of time. Technology today has produced a great platform for networking called meetup.com which brings such formality to cyberspace with the ability to join like minded people in your area, which can be just about anything you can think of.
Like all groups, meetup.com groups are about the alignment of like minded people interested in a singular pursuit in a formal setting that society recognises and credits as such. The status associated with such groups is considerable IF that group gains credit and respect for masterful accomplishments. With formal networking effectively democratised via meetup.com, the skills of networking at the “County Club” once again come into focus.
Before starting out to network on meetup.com, be sure of what you want from it as much as what you are prepared to give to it. The benefits are different based on what brings people to the group. If you have not thought out what the appeal and return is for you, then you will not gain value from it. Some core motives for networking I’ve seen thus far are as follows:
Sharing - Passion for a topic is a huge driver in successful networks and indeed in successful groups. The will to share expertise, knowledge and understanding is a core virtue of the successful networker who is there to share.
Personal Brand - Those who are building their personal brand for job seeking purposes or business development purposes will do well also with a well prepared skill set they are willing to share on the networking circuit. The return comes in the form of gaining access to relevant like minded professionals, credibility for their skills and awareness of their offering. In essence, those who have the intention to share their personal brand in their hunt for a new job or new business will do well ONCE they share their business brand and establish a reputation as a credible professional first.
Professional Development - Those who look to stay current do well from networking, getting to know professional peers along with understanding the movers and shakers. Getting known per the above point is a definite benefit to anybody’s career. Get known, get accepted and get respected for your contributions.
When networking, it’s always good to be:

  • Yourself, don’t pretend to be someone you are not. Those you seek to impress will see through any charade and penalise you for such an effort.
  • Knowledgeable, if you have expertise and knowledge in an area, share it, give people useful takeaways from your understanding of a topic
  • A good listener, those who listen more then they talk will come across as more credible, likeable and interesting.
  • A concise yet honest speaker, if possible share your understanding in a concise manner
  • Confident, don’t be afraid to introduce yourself around and work the room. Business cards are a good aid for this and if you don’t know something, don’t be afraid to admit it confidently. People like honest professionals, not pretend “experts.”
  • Follow up, if you make a good connection at an event, connect via LinkedIn and Twitter (& maybe Google+). Don’t wait for them to reach out if you have something to share with and/or to say to them. Also, if you don’t engage them in follow up conversation, just making the social media connections is enough for now but be sure to chat with them for a few minutes at the next face to face event. Great professional relationships are built iteratively.

On attending meetups, presenter and group reputations are built mainly on the content of presentations so be sure you are getting some good “take away” understandings that you didn’t have before it. Chat with other members on what they thought of the meetup and what take aways they got from it? If folks are laden with happiness and insights then that meetup is a good one. If not, then the inverse applies.
The modernisation of an age old group skill called networking is viable today because networking still underpins real group relationships and is still the way to go for sharing of knowledge, expertise and developing your own career through learning/networking with like minded peers. If you are at a professional or intellectual crossroads, be sure to use networking as part of your action plan to get the out of your resulting direction. With it, your chances of success are good indeed!


Sources/Credits:
Pics;



Credits;


Charles Forerunner for feature pic on www.unsplash.com

http://www.meetup.com/

Wednesday 2 December 2015

Our Legacy - Challenged by the times we live in!

Sustainability lies not in destiny but in the characters of those forging ahead in the present

I have often thought about the legacy we have inherited and what we will leave behind for the next generation. This always gives me pause for thought when you think of all the badness in the world that manages to grab our attention more than the acts of brotherhood, kindness and concern our fellow man shows to each other each and every day. The pause for the dead often becomes the weight of the living as we struggle in “our world” under relatively harsh economic toil, making ends meet and struggling to see our children fed, educated and happy growing up into our shoes to continue the journey of our kin! My thoughts once again came to rest on such a topic, when I thought of Steve Jobs apparently disproved “last words” and the penetrating meaning the alleged mystery author put into them.

He said:

“The wealth I have won in my life I cannot bring with me. What I can bring is only the memories precipitated by love.

That's the true riches which will follow you, accompany you, giving you strength and light to go on.

Love can travel a thousand miles. Life has no limit. Go where you want to go. Reach the height you want to reach. It is all in your heart and in your hands.

This passage from the 2011 essay (released in 2015) that according to snopes.com is not Steve Jobs last composition is however one of deep wisdom and insight that we should aspire to. In 2005, Steve Jobs said in his Stanford speech “Have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.

The first passage arguably may not have been him but when you see the other insights he shared, they are saying the same thing... if we want to change any badness in the legacy we got from our fathers, we must be true to ourselves in what we believe, cherish and strive for in life.

The meaning of legacy is something that we never think about directly; but it is defined every single day by our intent, which controls our actions. It’s my belief that if we allow our whole selves to deliver balance to our intent then we see clearly the path ahead and are better able to make good judgement a form factor in our daily lives. It’s up-to every one of us to think about what legacy we like Steve Jobs will leave. Proving a single quote or disproving it is not relevant. What is relevant is that such good intent was allegedly inspired by the a man who made the world a better place simply by Steve Job’s presence in it. Imagine if we all could deliver good intent like that? That’s a world we all could live in, a world that at a deeper level, understands itself and each other!

Sources/Credits:

Pics;


Credits