Archive Monthly Archives: September 2017

The Importance Of Being an Agnostic Developer

September 6, 2017

Agnostic Developer – Why Being Agnostic Is Important?

Welcome everyone! Today I will be discussing the importance of being an agnostic programmer for when it comes to learning programming languages and why it is in your best interest to become a Agnostic Programmer. As an aspiring developer, each and every day I am crafting my skill set and psychology, documenting my process along the way and helping you to become a better developer too!

Personally, open-mindedness of one of the most important characteristics we need to adopt to be world-class programmers and as strong human beings.  In my life experiences, it is common to come across programmers and tech enthusiasts who are passionate about their specific programming language or chosen-technology. Those who have used one programming language for the whole of their 10 year career.  I personally have found it to be a rare occurrence for someone to be radically open-minded to new technologies.

I see people around me who get easily offended when someone is learning a different language. It’s almost laughable. It’s almost funny to me because it’s extremely egotistical to be offended, there’s no reason to be offended at all. It is a limiting belief. The reason it’s funny because when they get offended they are avoiding the exact things that are going to excel their growth because they are getting offended at the things their ego doesn’t want to admit to itself.

A couple weeks back, I went to a Python Meetup in London to learn about the technology. I was asking some Python Developers what do they think of Java (as an experiment) from a minority of developers I got responses back “Java’s a dead language” and “Who even uses Java!“, they are right to have an opinion, but the fact that when the word “Java” is mentioned once, these two developers got easily offended is shallow. Though, of course, there is the other side of the spectrum, other Python Developers who were open to discuss about other languages and technologies.

Personally, it is very difficult to offend me, I am curious about all kinds of different perspectives and ideas. When a new programming language comes out, I am curious to learn about it,  I would read an article or two about it, even buy a book on the subject. Expanding our mindset is one of the best investments we can make.

Shoes Of An Employer

In the Android space, I can imagine there is a lot of Android Java developers out there right now who are hesitant to jump onto the Kotlin ship with the potential that it possesses. In my opinion, if I was in the employee’s shoes, looking for a new programmer, I would hire the most open-minded and willing to learn programmer, knowing they are open to new ideas and ways of thinking.

Let’s say you are an Mobile Android Developer using Android Studio and you have committed yourself with the goal of becoming one of leading expert in the field, learning all areas of Android Studio. You currently are working for an employee and they ask you to help with a Python AI project for one month in the Data Science department. Firstly, you know that Android Studio only supports C++, Java and Kotlin to develop Apps, so this would mean learning a new framework and so why would you want to learn a completely different language?

Let’s look at this scenario with a positive mindset, from the Agnostic Programmer’s point of view, questions of following may arise:

  • What can I gain from this experience?
  • What new concepts can I learn from Python that Java does not have?
  • What fascinates me about Data Science?

Well firstly, Python is a different language, you will pick-up some familiarity. There will always be something to learn from new experiences. What have you got to lose?

Times of Adaption for the Agnostic Developer

At some point in your career, there will come a time when you will need to learn a new programming language as required from the employee or the client. If you are beginner programmer, I would recommend to develop an open-minded mindset. To be willing to learn more than one language. For example, Let’s imagine if you are learning Java right now as a hobby, you become employed and so you are required to take your current Java skills and transfer to C#.  Having that skill of transferring to a new programming language as and when needed is an extremely valuable tool. But what’s even more valuable is having the mindset of being willing to learn a new language, embracing the opportunity, and taking action. This comes back to the mindset of life-long learning, having the drive learn something new everyday.

Be willing to adapt to a new language whenever you are required. In your spare time, read upon other areas of the industry. Let’s say, you have 2 years of pure iOS development,  you are secretly a die-hard Apple fan and refuse to develop anything for Windows, your company has a client that requirements an Android application to be developed and they ask you to help. Will you be open minded to say to your employer “I’m willing to adapt”? If you do, you will present yourself in a professional & bright light. It can reap benefits for your career and for your personal life too.

To sum up, having a Agnostic mindset as a programmer can open new doors for you, you will be willing to adapt, consider new programming languages, new technologies and new ways of thinking you haven’t come across before. But most importantly, be able to develop the skill of life-long learning will pay dividends in the long-term.  The technology industry is changing rapidly everyday and developing our minds everyday is, if not, the most important asset we can give ourselves.

Let me know in the comments below, what scenarios in your life experiences has adopting a open mindset benefited you?2

Programming Concepts – The 5 Most Important Concepts You Need To Know

September 4, 2017

Hey you, yes you! You are awesome and let’s get started! Firstly, I am writing these introductory posts in a format that I assume you have very little knowledge about programming. The goal is to make this content accessible and understandable to the “general populace”.

So, let’s get straight into it. 5 basic programming concepts you need to know first in any programming language. You might be asking “But Chris, why are you talking in general terms, I thought you specialize in Android Development?” To start off, from personal experience, it is extremely important to understand the basics of any programming language.

 

“What separates the good coders from the not-so good coders, is that the good coders have an advanced understanding of the basics” – Stefan Mischook

 

What he is saying is that it’s not just one thing to know basic concepts such as functions, objects and arrays. But knowing how to use these concepts in sophisticated ways is another. To fundamentally understand when to use functions to lower the amount of code, or to use an array to solve that complex multiplication problem you have.

It is highly recommended that once you have learned the basic concepts, to take the time out of your schedule to “peel the onion“. To dig deeper into things that you think you know already. For example, if you know and understand arrays then you can move advanced concepts like two-dimensional arrays. Understanding why you would use a one-dimensional array over a multi-dimensional array. What are the performance differences in each type of array for a particular circumstance? Concepts can get deep very quickly, and that’s a great thing.

Here are 5 basic Concepts of any programming language: 

  1. Variables
  2. Data
  3. Conditional
  4. Data Structure
  5. The Toolbox

If you are a complete beginner, I understand these words might seem foreign to you, that’s the nature of the learning process, I will do my absolute best to help you understand their meaning. Each concept can go into depth, but I will only talk about #1 Variables.

What is a Variable?

A variable, in the context of programming, is a symbolic name given to an unknown quantity that permits the name to be used independent of the information it represents.

Well that’s very abstract. To me, a variable is simply a location where we can store information of our choice to use later, and we can retrieve this information by assigning a “word” to describe this information.

For example, let’s say you want to visit my website “www.actualizedprogrammer.com” and I ask for your first name (To customize the experience for your next visit). I would create a pop-up screen that asks what your name is…this pop-up represents the variable!  Let’s say we called this text box ‘YourName’, this would be the symbolic name for your variable.

So when you type in your name into the ‘YourName’ Text box, the data/information that you enter will be stored into the variable called ‘YourName’. Fast forward 24 hours and we ask “What value does the ‘YourName’ contain?”, and the program would display the data you physically typed into the text box.

How common are variables in programming? 

They are everywhere! I almost guarantee every program that 99% of all programs that you interact with will have a variable somewhere. Big companies such as Google and Amazon use variables in their code. It’s part of a network of code that allows you to make a purchase on Amazon, or to withdraw cash from the cash machine. Ask any programmer and ask them how often do they use variables, you will get a positive response on the importance of them!

Strings, Integers and Doubles in Java 

Now we’ve covered where they can be used, let’s dive into the meat of Java. In Java, this programming language wants to know the specific type of information you are storing inside a variable. Be it a decimal number, word or whole number. There are a number of reasons why types are important in Java, let’s find out.

So Chris, what would happen if I tried to store something that is not a string into a String variable, let’s say the value “28.55”? Simply, your program would be screaming at you asking you to fix it!  The value “28.55” is a number with two decimal digits. In Java, when you specify that a variable is of the type String, you can only store characters, no numbers of any kind.

A String is simply a list of characters in a specific order, the computer does not understand the variable is a “word”, it only understands the characters individually, and so when these characters are placed in a specific order it creates different circumstances.

Defining what type of data that the program is dealing with will allow the programming language to manipulate the data in certain ways. Again, when I say “defining what type of data” I am referring to the type of data.

What Can You Do With Data Types?

Here’s a simple example.

You have the goal of adding two numbers together, let’s say the number 7 and the number 44. Java will behave differently depending on the type of variable that these pieces of data are assigned to.

Let’s see what I mean:

If you have defined your variables to be the type String, then “7” and “44” are stored in two separate variables.

A string has a different nature to Integers, and these behave differently because it is a different data type.

If we were to add these two variables together, each defined as Strings, what do you think the result is?

The resulting String would be: “744”

You might wonder, why is this confusing, but it makes more sense when you look past the illusion.

Now let’s say, both variables: “7” and “44” are the variable type Integer, and now we want to add the together, what do you think the result would be?

That’s right, we would get “51”.

In another example, let’s assume that we are storing 2 list of characters and number.Variable 1 is “Hello” and variable 2 is “World”.

With this in mind, can you work out the final result?

I’m confident in you and i’m sure you came to the result “Hello World”. If not, that’s okay this content will take time to digest, just keep consistent at the study and you will progress.

The exact same behaviour is occurring with the Strings “7” and “44”, remember Java behaves different depending on the initialised data type.

In Java, the String “7” is the same data type as  the String “seven” as they are both a specific order of characters.

 

To summarise, we talked about what a variable is and how you can store information and then manipulate the data in a specific way.

All in all, I hope you can become aware what the benefits are of learning a programming language! The desire for a company to hire employees capable of learning new programming languages is a crucial skill, and many companies are hiring people to build new applications such as mobile applications. Let’s continue the journey of learning a programming language and come back for section two – Assignment.

 

References

[1] Stefan Mischook – https://www.youtube.com/channel/UCyUBW72KU30dfAYWLVNZO8Q