Why Should I Learn Android?

You have firmly decided that you want to learn to create applications for Android using Kotlin. You are super motivated to create your first application.

Or are you?

If only it were that simple. There is that lingering feeling in your heart: “Perhaps learning iOS is better?” Were you thinking about Web and Desktop application development yet?

Choices, choices — everywhere!

Even if you’ve decided on Android, perhaps, you are still not sure what is the best starting point: Kotlin or Java.

There are a lot of comparisons between iOS and Android development out there, and they all talk about (if you haven’t seen those yet, go and search on the internet — there are plenty of those):

  • size of the market
  • jobs prospects
  • revenue gaining opportunities
  • development tooling
  • knowledge transferability (how the knowledge you learn on one platform can help (or cannot) on the other platform)
  • device fragmentation and many others

Let’s imagine that you have identified a benefit from one side, like Android’s market size being much more significant.

Next moment, you find a downside that either will cancel out the benefit or will make you spend a lot of effort to cancel out that itself (like device fragmentation and revenue levels).

So the choice is pretty tricky and not apparent.

I know how you feel right now. I’ve been there when I was trying to choose what mobile platform I wanted to learn first. It is frustrating and painful.

But hey, if you have already made a firm decision — great! Read on, and you will not be disappointed. Because what is to come — will surprise you.

In programming, when things go about learning, all of the above matters quite a bit.

But not as much as the learning benefit that you get.

Learning a Programming Language in a Day? — Impossible!

Or is it?

Did you know that a programmer who is an experienced learner, can learn a programming language in one or two days? And get comfortable with the platform, bunch of libraries, and a framework in another one or two days?

Sounds shocking, isn’t it?

And no, I’m not trying to sound arrogant here. These are actual people, who I know. And they can pull that off. Moreover, they can join a team that has an entirely unfamiliar set of technologies, and be productive on their first day.

They are not some geniuses or super-talented people.

They do share one observable trait though: they all know five and more programming languages, and they are proficient with a bunch of different libraries and frameworks from these languages.

These developers can start being productive with a technology they’ve never seen before in a matter of hours.

For that, they need access to someone already proficient in this technology. While working on some feature, experienced learners would ask a few specific questions to the experts, so that they can fill in the blanks in their existing knowledge.

So two to three questions and they are already ahead of most learners by far. As far as by months and years of experience.

That sounds amazing and daunting at the same time.

Perhaps, you are thinking “That is not possible!” Or maybe you’re feeling down because you can’t learn as they do.

Yet.

The point is that, when you will be able to command (comfortably developing production-ready applications) roughly five and more programming languages (that are not very alike), and about the same amount of different frameworks, then this skill of rapid learning is yours to take.

In fact, it will already be yours. And you’ll be just like these “talented” (more like hard-working) developers.

To get there, you’ll need to accept the “Life of Learning” into your heart. You’ll need to become a lifelong learner.

Just like them, you will want never to miss an opportunity to learn.

There is a weird behaviour of the library? — You go out of your way to read the documentation and sources. And you debug and use print statements.

You do all of that until you understand precisely why it behaves this way.

Perhaps, you catch a glimpse of a new concept, but made it work without fully understanding it? — go there, read about it, play around with it, until you have a full understanding of it.

Do you have a bug in front of you, and somehow your last code change made it fixed? But you still don’t understand the bug? — You don’t stop there.

You figure out why it was not working, and why your fix worked.

Sometimes, you’ll need to create a tiny application just to play around with a single new concept. Use it in all the forms and for different purposes, until you’re confident that you got this.

I hear you’re saying: “One day? No matter how much learning you do — it is just not possible!”

Heck, it takes months and sometimes years to learn a programming language!

I know, right?

That is true. It takes so much time to learn even a single concept in programming.

But it takes a tiny bit less time to learn your second concept. Especially, if that concept has some connection to the one you’ve just learned before.

But it all checks out.

Science Behind Learning Programming Language in a Day

In Human Cognition and Learning, there are few theories on how people process information and learn. These all theories are significant and complement each other.

There is one theory that contributes to this effect of learning a programming language in a day.

It is the Schema Theory developed by the respected psychologist Richard C. Anderson (Anderson 1977, 1978; Shallert 1982).

You can dig into these white papers in your own time, but let me quickly give you an overview of most important parts here.

The main concept in the schema theory is Schema. It represents generic knowledge. A schema includes slots for all the components and features included in it.

One schema can contain other schemata (plural of schema). Essentially, schemata are embedded within others at different levels of abstraction. But relationships between those are not necessarily hierarchical (like a tree in programming), but more like webs (bi-directional graphs in programming).

Let me give you an example of what could be person’s schema of a “variable”:

I’m pretty sure there is a lot one can add to that schema. You can continue expanding this schema endlessly.

At some point, you will even escape domain of programming and start talking about normal things in life and nature. Or perhaps, you can connect it to mathematics or linguistics domain. And so on.

Why do you think I’m so obsessed with cognition and learning?

I’ve spent a few weeks digging through papers to understand how a person can learn faster and better. Especially, I was interested in formal and abstract concepts’ learning.

I did it because I’m creating a few Kotlin and Android tutorials and I encourage you to become a member of iwillteachyoukotlin so that you can receive an early preview version of my “Ultimate Tutorial: Getting Started With Kotlin on Android.”

Anyways. Schemata like that are not just drawn on the paper by a learning student (not saying that you couldn’t — it might be a good idea).

They are formed naturally in one’s brain when individual gains more an more experience and concept understanding.

Schemata change all the time. Even right now, while you are reading this same text, your schemata are being expanded and re-structured (unless you already know everything here).

The most important point is that schemata like that are much more than a sum of its parts. Whenever your brain makes a meaningful connection between two schemata, you gain insight.

It is like having a breakthrough.

Did you ever have an “A-ha!” moment like: “A-ha! This thing over here is just like that other thing I know everything about but with such small difference?”

This insight might not be 100% correct. But it doesn’t have to. Such insights are something that makes you able to apply an otherwise wholly new concept quickly.

So here is the deal. The more schemata you have readily available to connect concepts to, the faster you’ll learn these concepts. Some of these schemata don’t even have to be from the domain of programming.

For example, if you are learning how double-linked list works, you might connect that concept to a schema of how cars are connected in the train.

Then you can understand all the operations with a double-linked list (such as insert and remove) as an operation being performed on the train cars.

And it will all check out.

Kind of.

Obviously, such connections between schemata are just what we call metaphors.

They give us meaningful and useful models for the understanding of a particular concept. But they have edge cases when concepts differ from these models.

So it makes sense to discover these edge cases, and learn how the concept behaves in these.

That, my dear reader, is exactly what experienced learners do when they ask precise questions about new programming language or framework to someone already knowledgeable in it.

They probe those holes in their models. They fill in the blanks in their schemata.

Alright, this is all great, but what does it have to do with the question whether you should learn Android or Kotlin for that matter?

Or should I ask the real question?

Why Should I Learn?

See what I did there?

I’ve changed the question and made Android, or Kotlin irrelevant.

So should you learn?

According to the schema theory, the answer is a definite “Yes.”

You’ll need all the learning and all the schemata that you can get to achieve your life goals. So learning every day and at every opportunity should not even be a question. That is just what you do.

The simple reason to do it always is that the more you do it, the easier and faster it gets.

My famous phrase “learning is a skill that can and must be trained” shines here. The more you learn — the more schemata you have and more interconnected they are.

As a result, it gets easier and faster to learn new concepts — to expand said schemata.

That is all unless you don’t want to learn anything in your life again. Sorry to break it to you, but as soon as you want to achieve anything you haven’t done yet, you’ll have to learn and grow.

From the fact that you are reading this, I firmly believe that you want to learn.

That makes this question answered, you want, and you should learn.

What about Android?

Well, no matter how much you weigh the upsides and downsides of all the different platforms, you won’t arrive at the decisive solution. It depends a lot on what kind of application do you want to create, what business you are trying to build, and what is your market.

If you already have all that information, you should be able to make a choice.

If you are just looking at what new technology to get in your toolbelt as a software developer, then it doesn’t matter as long as it is something that is widely used. Android is.

What about Kotlin?

These two years and a half, Android community has seen a rapid increase in Kotlin usage. Every single software developer that I’ve met or been working with were super happy about Kotlin.

They’ve converted company’s application to Kotlin as soon as possible too.

Some of them made a conversion even before the stable 1.0 release of Kotlin. Which was a bold move, but it was worth it.

Moreover, Google and other big companies and communities are making their bet on Kotlin.

If you are reading this, you’ve perhaps already made a choice. If I were you today, I would do the same — learn Kotlin.

This article originally appeared on Hackernoon.

About HackerTrail

HackerTrail is a curated marketplace exclusively for IT talent ranging from developers to infrastructure specialists to data scientists. Using clever technology and gamification, HackerTrail connects the right candidate to the right job opportunities with top companies across Southeast Asia.

Looking for an opportunity in Android development? Check out top companies in Singapore hiring for Android developers now on www.hackertrail.com.

A Fresh Grad’s Insider Tip On Surviving Your First IT Job

In an increasingly competitive work environment, we’ve all been programmed to be solely focused on success and to perceive failure as a negative thing. But in the age of digital transformation, many companies are flipping the switch. They are starting to realize that failure creates an opportunity for us to think beyond and innovate which is imperative to business success. Rabiah echoed similar sentiments as she shares with us her recent experience as a IT developer and the immense learning opportunities that were granted during her stint.

Why did you join GovTech’s Technology Associate Programme?

I joined this programme because it provides me the flexibility in experiencing different kinds of IT areas and further discover what I’m passionate about. It also gives me greater exposure on what’s really out there in the working world, going beyond what was taught in school, simultaneously gaining new knowledge and hands-on experience.

Tell us about the culture at GovTech and what you like about it.

I really really really love the openness and collaborative culture and people at Hive. Everyone is very passionate and it’s even more wonderful that they are always enthusiastic in sharing and conveying their knowledge with one another. Continuous learning and sharing knowledge is another culture that I love about GovTech. I’ve been here for almost 6 months and the people around me feel more like my friends rather than colleagues, even those who are not within my team so that’s great!

How has TAP benefited you?

Before I officially started working, GovTech had a sharing session on some of the projects that we could work on and gave us the opportunity to decide which we were most interested in to try out as a way to kickstart our career. I think it is a great initiative because entering the working world as a fresh graduate can be a terrifying experience, as you don’t know what to expect, thus the sharing session really helped to ease my worries. Also, the freedom to choose gave me a sense of ownership over what I’m doing right now. Plus, TAP provides us with options to try out new things so it is amazing that I am able to gain various technical hands-on experiences to improve myself professionally and deliver quality work.

Share about the most interesting project you have worked on at GovTech.

I’m currently working on Business Grant Portal (BGP) as the backend development of the application. Working on this project gives me a sense of purpose because I’m helping to streamline the grant application processes so that it’ll be easier for both agencies and businesses to manage and track their grant applications in a more sustainable and efficient way.

Also, I have the opportunity to gain hands-on experience on one of the top BPM softwares called Appian to handle the backend processes. It’s pretty cool how powerful bespoke software is in speeding up the development work as compared to the conventional way of coding everything from scratch, which could take years to finish given that BGP is quite a big project!

Share one key takeaway from the TAP programme

The TAP programme presents an abundance of opportunities. Willingness to learn is one of the essential qualities because it’s what keeps you motivated to experience new challenges and grow as an individual in both personal and professional aspects.

Do not be afraid to make mistakes because you can’t learn anything from being perfect. You should be familiar with this quote if you have watched The Haunted Mansion starring Eddie Murphy – “You try you fail, you try you fail. But the only true failure is when you stop trying”. So fail fast and learn faster!

What is the one advice you would give to those considering applying for the TAP programme?

BE BOLD. If you have the hunger to experience new challenges and innovative creative solutions via IT, join TAP for a fulfilling career. Believe in yourself and unleash your potential with GovTech!

==

Are you looking for a workplace that invest in the growth of its people, and provides a culture of strong collaborative and learning exchange? GovTech could be the workplace for you.  At GovTech, we are on a search for agile tech leaders with a breadth of knowledge and depth of expertise, through our Technology Associate Programme (TAP). This is an exclusive leadership trainee programme for top-notch technology seekers who will be groomed to take on management and technical roles with us.

Jump-start your career in the technology industry; join now by applying to the GovTech Technology Associate Programme. You can find out more about GovTech Technology Associate Programme here.

Working at GovTech: A Fresh Grad’s Perspective

With the increasing prevalence of cyber attacks, more and more companies are looking into hiring professionals to keep their information safe. Cybersecurity is certainly financially lucrative but these professionals are not doing it just for the paycheck. We speak to Keith, who shares with us his recent experience as an Incident Responder- drawing parallels to a firefighter, and the immense value his role brings to the company. In addition, we have Keith’s mentor, Liyana Fauzi, from the Strategic Planning and International Division to share with us how her GovTech journey has helped in her mentorship with Keith.

Keith Tay.jpg

Why did you join GovTech’s Technology Associate Programme? 


Before I graduated, I was actively looking for a job in the Cyber Security technical field. One distinct reason on why I applied to GovTech’s TAP was the programme’s structure. I personally felt that the programme was well crafted for fresh graduates who wanted to develop a career in the IT industry. The programme encourages rotation, a mentor to guide you and offers several job roles to select from to kick-start your career.

Describe a typical working day at GovTech

I am an Incident Responder in the Cyber Security Operations team. What that basically means is that, my role is comparable to the functionality of a firefighter when a fire breaks out. The firefighter will be alerted of the incident immediately and tasked to contain the fire. They will then need to remediate the issue, provide root cause analysis on how the fire started as well as recommendations on how to prevent such a situation from happening in future. When the firefighters are not reacting to incidents, they will be at the station finding means to increase their skills or sharpen the tools they have.

This is similar to the reactive and proactive role as an Incident Responder. When a cyber-security incident occurs, we will be there to perform both forensic/memory image on the system and bring it back for further analysis.  

My typical workday typically consists of these 3 fundamental roles- malware analyst, data/log analyst and incident response. Malware analysis involves examining malicious scripts/executables and determine what are its capabilities. This could involve reverse-engineering an executable in assembly language. In addition, as a data/log analyst, I am involved in analysing the huge amount of raw data from network, application and database logs. In order to understand how the incident happened over the network, I have to correlate the data from multiple sources and make sense of what the adversary was trying to perform. Lastly, for incident response, I work as an incident Handler for security events.

As a proactive individual, I am always finding ways to reduce the time taken for investigation either by automating the investigation process or by looking for new tools out in the market which could aid in investigation.

However, GovTech is not all about work; till date I was involved in many other exciting events such as being part of the planning committee for Cyber Security Group (CSG). I also had the opportunity to participate in GovTech’s Dinner and Dance performance which gave me the opportunity to make a lot of wonderful friends from the different departments. My team also makes an effort every once in a month to head out and enjoy ourselves with activities like bowling, badminton, dinners and drinks, and many more!

Talk about the technical skills you have been working on at TAP?

Since my time here in GovTech, I have been exposed to various technical skills such as reverse engineering, data analytics and scripting. For reverse engineering, my role as a malware analyst is to understand the capabilities of a malware. This involves looking at assembly codes, understanding different API calls or even looking at malicious scripts/programs. In data analytics, there are countless opportunities to work on big data. I picked up numerous pre-processing techniques and analytical skills such as R, Python, Splunk, Tableau. As for scripting, I am continuously improving on our investigation tools as well as scripting languages such as Python, bash or Powershell.

What do you enjoy the most about working for GovTech?  

As we are the “firefighters” for the Whole-of-Government, the investigation we perform is for the government. By solving incidents, I get a sense of satisfaction as I am ensuring a safer environment for us to work in.

What is the one advice you would give to those considering applying for the TAP programme?

If you’re looking for a quick and challenging environment, GovTech will be the place for you. A personal advice on what I tell my juniors is that as a fresh graduate entering into the IT industry, there are just too many different roles. You will not know if the role suits you unless you try it out. Look for an organization which offers you the opportunity for rotation so you can grow as an individual.

Share one key takeaway from the TAP programme

As part of TAP, we are each paired with a mentor who is more senior in the organisation. My mentor, Liyana has guided me through my times here in GovTech. She ensured that I understood the organisation structure, check in if there were any challenges faced and asking if I needed any help that she can help with. It is really heartwarming to have an awesome mentor.

Liyana, share with us your mentorship experience with Keith.

I was matched with Keith and another mentee through a fun matchmaking/interview session. As Keith and I are from different teams in GovTech, I saw my role as a  mentor in general work matters, and not so much the technicalities of his domain area. This mentorship experience enabled me to reflect upon how it was for me when I first joined the then-IDA as a relatively fresh grad too, and to try to pick out some of the lessons I’ve learnt along the way since then; things that I could share with Keith. I have tried to keep the mentorship experience pretty light and to provide an open space for candid discussions. We would typically meet over coffee to talk about how he’s doing at work, what’s happening with the organisation (given that there have been many changes), and to also share my experience in navigating the workplace such as how to manage stakeholders or how my mentees could meet their meet career aspirations.

How has your GovTech journey helped your mentorship with Keith? 

What helped me in my mentorship was mainly (a) things I picked up from other seniors, (b) having gone through certain GovTech programmes and (c) forging friendships with other mentors. For example, one piece of workplace advice that I hold closely is not to be afraid to ask and actively pursue opportunities that one was interested in. This piece of advice was lent to me by another senior and it is something I share with my mentees too, and I think it could be useful for the TAPs who are just starting out at work. Programmes that I had completed in my GovTech journey such as the EDGE Programme and the Sectoral Inter-agency Projects have also provided me with some insight into what the other agencies are doing, how agencies view GovTech’s work and how to manage cross-agency issues. To me, it is important for my mentees to know how their work has impact on other agencies’. In addition, as all mentors had to go through a two-day course, the friendships I developed with other mentors has also been very helpful in this journey as we could exchange ideas about topics to discuss with our own individual mentees.

==

Are you an advocate of the innovative use of technology and how it can enhance the lives of fellow Singaporeans? GovTech Technology Associate Programme (TAP) could be a place for you to start. TAP is an exclusive leadership trainee programme carefully crafted to develop and hone your technical knowledge and professional skills.  Upon selection, you’ll participate in 24 months of specialist training and grooming to take on technical roles within GovTech that will accelerate your career development.

Make an impact on the future of technology; join now by applying to the GovTech Technology Associate Programme. You can find out more about GovTech Technology Associate Programme here.

 

What Is MedTech and Why Does Asia Need It?

In a bid to classify the hordes of tech-reliant startups that have popped up in the past decade, exotic blended words such as “Edtech” and “Fintech” have come into existence in order to label education- and finance-related startups. Naturally, “MedTech” refers to the business of medical technologies.

Biotechin.Asia reports that by 2020, the Asia-Pacific region “is expected to pass the European Union as the world’s second-largest MedTech market”. The market demands in the Asia-Pacific region is highly diverse even within a single country in the region. Leading MedTech companies have lagged behind other industries in serving the region, creating gaps in patient services and bypassing significant opportunities.

The difficulties faced by the MedTech industry in the Asia-Pacific region include frugal spending habits, multi-segment markets, inadequate infrastructure, regulatory and reimbursement complexity, and intense competition. Conquering the MedTech market in any Asian country presents its own unique set of challenges.

leavealegacy1

Attempting to crack this challenge is CXA, a HR/MedTech startup that handles benefits and wellness for employers and employees through an online platform. 2-year-old ConneXionsAsia hit an impressive revenue of $6 million within its first year and raised $8 million in Series A funding in January.

ConneXionsAsia provides personalized benefits to employees so that health benefits given through employer-sponsored insurance don’t go to waste. Their portal lets employees choose benefits based on their needs, instead of a traditional one-size-fits-all scheme.

Speaking to Tech In Asia, founder Rosaline Koo describes CXA’s imperative. “There’s a lot of waste in how employers are spending on staff benefits,” she says. “If you’re single, you typically don’t need that much insurance coverage, but working couples often get duplicated coverage, so why not use that for something that the employee values?”

Since the startup launched in March 2014, CXA has had significant market success, working with over 500 corporate clients, including over 40 Fortune 500 companies.

cxa

CXA is hiring: Come work at this dynamic startup as a Web Developer! More details on our HackerTrail listing here: https://www.hackertrail.com/cxa?sc=blog

==

Images taken from CXA’s official website