Categories
Tips

AR/VR Trends in the Ecosystem – Part One

Augmented Reality (AR) and Virtual Reality (VR) have captured the public imagination for decades; from the Holodeck in Star Trek to Ironman’s Heads Up Display, this technology is synonymous with visions of the future. Recently however, AR & VR processing has become commonplace on smartphones and companies like Oculus & Sony have released consumer-quality headsets. In this post we take a look at some of the AR/VR trends in the ecosystem, focusing on the main differences between developers and non-developers active in this space. Let’s look at those AR/VR trends.

AR & VR are the smallest individual software sectors

Considered individually, Augmented Reality and Virtual Reality remain the smallest software sectors out of the ones we research (the others being mobile, desktop, web, games, backend, industrial IoT, consumer electronics, data science & machine learning). Even when combined, AR and VR (AR/VR) are only marginally bigger than Consumer Electronics, the next smallest sector. Only 0.4% of people are involved solely in AR or VR, the rest are involved with at least one other development area.

AR/VR trends – Only 0.4% of developers are involved solely in AR and/or VR

Of the 9% of people involved with AR or VR almost half (46%) are involved with both AR and VR. This shows that there is a significant overlap in the skills needed to work in these sectors. There are more people involved solely with VR (31%) than with AR (24%). AR is slightly less mature than VR and there are some technical challenges in AR (occlusion, optics & object registration, for example) which are still being resolved, this also means that there is a smaller market for AR products, as the technology is less established. This results in a slightly higher barrier to entry and subsequently a smaller number of people involved in AR than for VR only.


AR/VR Trends - 46% of AR/VR practitioners are involved with both AR and VR

AR & VR trends – practitioners are mostly hobbyists

One of the defining features of AR & VR practitioners is their diverse involvement in different development areas. As previously discussed, the number of people involved solely in AR & VR is very small, but in fact, many of them are also involved in multiple development areas. Over 60% of practitioners involved in AR and VR are involved in 5 or more sectors in total. This is a large contrast with respondents who don’t work in AR or VR, where only 9% only are involved in 5 or more sectors.

Most people who are involved in AR or VR are hobbyists, and not just in AR & VR. These people are more likely to be hobbyists in every other sector than people not involved in AR or VR. They are technology enthusiasts who like to experiment outside of their professional duties, and are currently experimenting with AR & VR, potentially with a view to incorporating AR & VR into their existing development projects.

Looking at this from the other side, 28% of VR professionals also consider themselves to be hobbyists in the same sector. Out of AR professionals, 24% take on AR projects in their spare time as a hobby. This is higher than most other sectors, with machine learning being the next highest at 26%, then games at 25%. This shows that AR & VR practitioners are enthusiastic about the sector, often having passion projects on the side.

57% of AR & VR hobbyists work professionally in at least one other development area

We also see more diversity in the type of roles that AR & VR practitioners do. Because AR & VR sit at the intersection of arts and technology, practitioners often fulfill hybrid (both technical and non-technical) roles. In fact 35% of AR practitioners fulfill a hybrid role. Subsequently, people involved in AR/VR are less likely to be ‘Pure Developers’ (people solely fulfilling developer-type roles) than those involved in other sectors. This difference is especially pronounced for respondents working in VR or in AR and VR, with only 34% and 38% respectively working solely in developer roles, compared with 50% of respondents working in AR only.


AR/VR trends - practitioners often fulfill hybrid roles

Practitioners who are involved in VR only, or VR and AR are more than twice as likely as their counterparts who are only involved in AR to be in non-developer roles. This shows that non-developers tend to favour working in VR in some capacity.

Drilling down into the roles, we see that 49% of AR practitioners work as programmers or software engineers, compared with only 37% and 32% respectively for VR practitioners and those who work in both AR and VR. Many AR practitioners are also involved in web & mobile development and machine learning. This suggests that these coders are interested in AR from a technical point of view, looking to challenge themselves by using the latest technology or to implement AR in their projects.

On the other hand, VR practitioners and those involved in both AR and VR are more than twice as likely as AR practitioners to be game designers or work as product managers. The popularity of these roles reflects the quick uptake of VR by the game market – moving from being an emerging technology to generating revenue.

Not only do AR & VR practitioners hold different roles compared to people involved in other sectors, but they also wear a lot of different hats. More than 20% of people involved in AR or VR take on 4 or more roles, compared with only 12% of people involved in other sectors. We already know that AR & VR developers are often passionate hobbyists, but it’s also clear that they have diverse interests and skills. This diversity comes from the fact that as AR and VR development technology matures, tools are appearing which require fewer technical skills to create an AR or VR product. This attracts non-developers who can more easily realise their vision.

AR & VR practitioners take on more roles than people working in other sectors

What other AR/VR trends are there?

Almost as many AR & VR developers use 3D animation software as use IDEs

While there is some overlap in the technologies used by developers and non-developers involved in VR, none of them have a strong appeal for both audiences. The Oculus technology suite comes closest to being the go-to platform for both developers and non-developers, with over 35% of each audience using the platform. Playstation VR, Windows 10 Mixed Reality & Google Daydream all attract a good proportion of non-developers (36%, 28% and 26% respectively), but fail to appeal to VR developers. This landscape creates an opportunity for a technology vendor willing to invest in widening support and access for one (or both!) audiences, as a unified tech stack would provide large efficiency benefits to integrated teams by integrating with other tools and platforms, streamlining training needs and reducing the variety of tools being used.


AR/VR Trends - Oculus leads across all practitioners, but PlayStation VR is equally popular among non-developers

Unity Mobile AR, AR Core and AR Kit lead the pack of software tools for people creating AR products, but all of these tools are favoured more by developers than by non-developers. This suggests that there is space in the AR software market for a tool which allows non-developers to more easily realise their creative vision.


AR software tools appeal more strongly to AR developers than non-developers

Over half of developers use game engines and 48% use 3D modelling and rendering software. The high uptake of these technologies amongst AR/VR developers is testament to the powerful efficiency gains available from the abstraction they offer, as well as that AR, and especially VR, lend themselves to game development.

Over 50% of AR & VR developers use game engines

We’ve already seen that practitioners that undertake developer and non-developer roles (hybrid developers) make up a sizeable proportion of those involved with AR & VR, and this is validated by the popularity of 3D animation software (39%) and designer tools (30%) amongst the technologies used by AR & VR developers. In fact, almost as many AR & VR developers here use 3D animation software as use IDEs!

Backend-as-a-service, ML APIs and app store analytics are all used by less than 15% of AR & VR developers. The usage rate of app store analytics for AR & VR developers is 3 percentage points lower than for game developers, and 10 percentage points lower than for mobile developers. This suggests that AR/VR developers are focusing on getting the basics right, rather than trying to extract maximum value from their apps’ marketing funnel.


Graph depicting technologies used by devs and non devs

We see some overlap in the tools used by non-developers; 49% use 3D modelling and rendering software, 43% use game engines and 42% use 3D animation software. The high usage rates of the more artistic technologies is to be expected, given that these people are, by definition, not developers.

The Adobe toolset is the most popular software tool amongst non-developers, but the next three most popular software tools are all SDKs used by 24% of AR non-developers (ARCore, ARkit and Unity Mobile AR). This begs the question, do non-developers involved in AR & VR know how to code?

What are your biggest pain points in getting into AR/VR development? You can share your experiences in our AR/VR survey.

You can read more AR/VR trends in our State of the Developer Nation report.

Categories
Tips

Top Companies Contributing to Open Source

Who are the top companies contributing to open source? This blog post looks at how CodersRank used publicly shared data to answer this question, and how they created a series of data visualization videos.

The boom of open source software brought a change in technology that shaped the world as we know it today.

Open source exists thanks to the hard work of dedicated programmers and developers. It has become the foundation of cloud computing, software-as-service, next generation databases, mobile devices, the consumer internet, and more. 

undraw open source
Source: undraw.co

We, at CodersRank, are great admirers of open source. Almost every one of us contributes to open source regularly, and we sometimes work on a project or two together. 

In this blog post, we’ll introduce you to a video that we created. This video gives you a visual representation of companies that contributed the most to open source since 2012. If you find this data interesting, then you’d probably love to know the methodology behind it. We’ll show you exactly how we gathered the data and then how we gave it a visual spin. 

Video: Top Companies Contributing to Open Source

The video, “Top Companies Contributing to Open Source | 2012-2019”, is part of a series of data visualization videos that we came up with at the end of 2019. We made these out of curiosity, after realizing that you could see certain trends forming if you put together some of the publicly shared data. 

Haven’t seen the video? Here it is:

Behind-the-scenes of our method

This will be a quick overview of our method – please see the actual code used further down this page.

Measuring contributions

In measuring the contributions we only considered the commits. We know that there are many other ways to contribute to a project not just commits but in this particular case we wanted to focus on the commits.

Defining contributing authors

We relied on the email addresses of the authors. The second part of the email is usually the company’s domain.

Assigning commits to a company

There are around 2.4B public commits in GitHub (since 2011) and we had to analyze each and every one of them to answer this question. Thankfully, not manually!

Using the GitHub API to extract that amount of data would have been impossible. Thanks to the GitHub Archive Project, all the public GitHub events are stored in a publicly available BigQuery database. Using SQL to extract data made the process easy and painless.

Cleaning up the data

After we counted the commits for each company, the data needed to be cleaned. First, we excluded email providers like gmail, hotmail, yandex etc. Then, we excluded a few more, as there were some cases where the commits were made by bots.

Converting the results to the expected format

We used Flourish to create the videos. The data had to be converted into a format that is acceptable for Flourish (i.e.: handling months with no data from a given company).

Implementation

Step 1: get the commits/domains

Top companies contributing to open source - PushEvent in BigQuery-  get the commits/domains

The payload column is what we needed here, since it contained the email address. In our example it is a454492e42fd9810e577ebee548c7e59bd883bca@live.com.au. GitHub hashed the first part of the email, but we didn’t need that anyway, because we were only curious about the domain-level information. 

The query to count the commits/domain name looked like this:

## pre-2015 API
CREATE TEMP FUNCTION
 json2array(json STRING)
 RETURNS ARRAY<STRING>
 LANGUAGE js AS """
         return JSON.parse(json).map(x=>JSON.stringify(x));
       """;
WITH
 export_domains AS(
 SELECT
   DATE_TRUNC(DATE(created_at), month) AS month,
   emails,
   ARRAY(
   SELECT
     REGEXP_EXTRACT(x, "@(.*)")
   FROM
     UNNEST(emails) x
   WHERE
     REGEXP_EXTRACT(x, "@(.*)") IS NOT NULL) AS domains
 FROM (
   SELECT
     * EXCEPT(array_commits),
     ARRAY(
     SELECT
       JSON_EXTRACT_SCALAR(x,
         '$[1]')
     FROM
       UNNEST(array_commits) x) emails
   FROM (
     SELECT
       created_at,
       json2array(JSON_EXTRACT(payload,
           '$.shas')) array_commits
     FROM
       `githubarchive.day.20130101`
     WHERE
       type='PushEvent' )))
SELECT
 month,
 flattened_domains AS email_domain,
 COUNT(flattened_domains) AS domain_count
FROM (
 SELECT
   month,
   flattened_domains
 FROM
   export_domains
 CROSS JOIN
   UNNEST(export_domains.domains) AS flattened_domains )
GROUP BY
 month,
 email_domain
ORDER BY
 month,
 domain_count DESC

After 2015, the format of the payload changed a bit and required a slightly different query:

## post-2015 API
CREATE TEMP FUNCTION
 json2array(json STRING)
 RETURNS ARRAY<STRING>
 LANGUAGE js AS """
         return JSON.parse(json).map(x=>JSON.stringify(x));
       """;
WITH
 export_domains AS(
 SELECT
   DATE_TRUNC(DATE(created_at), month) AS month,
   emails,
   ARRAY(
   SELECT
     REGEXP_EXTRACT(x, "@(.*)")
   FROM
     UNNEST(emails) x
   WHERE
     REGEXP_EXTRACT(x, "@(.*)") IS NOT NULL) AS domains
 FROM (
   SELECT
     * EXCEPT(array_commits),
     ARRAY(
     SELECT
       JSON_EXTRACT_SCALAR(x,
         '$.author.email')
     FROM
       UNNEST(array_commits) x) emails
   FROM (
     SELECT
       created_at,
       json2array(JSON_EXTRACT(payload,
           '$.commits')) array_commits
     FROM
       `githubarchive.day.20150102`
     WHERE
       type='PushEvent' )))
SELECT
 month,
 flattened_domains AS email_domain,
 COUNT(flattened_domains) AS domain_count
FROM (
 SELECT
   month,
   flattened_domains
 FROM
   export_domains
 CROSS JOIN
   UNNEST(export_domains.domains) AS flattened_domains )
GROUP BY
 month,
 email_domain
ORDER BY
 month,
 domain_count DESC

The result looked like this:


Row
month email_domain domain_count
1 2015-01-01 gmail.com 131357
2 2015-01-01 users.noreply.github.com 8802
3 2015-01-01 python.org5786
4 2015-01-01 hotmail.com4942
5 2015-01-01 fhda.edu 3888
6 2015-01-01 yahoo.com3216
7 2015-01-01 etudes.org 2736
8 2015-01-01 qq.com 1955
9 2015-01-01 sly.mn 1908
10 2015-01-01 foothill.edu 1848

Step 2: exclude email providers

The heavy lifting was done by BigQuery. We exported the results into a .csv file and used the good old Jupyter Notebooks to clean up the data.

As you can see in the example result, not surprisingly, the first one was gmail.com. Our next task was to remove the email providers from the list. 

We used a GitHub contribution of the most popular email domains for the cleanup: https://gist.github.com/tbrianjones/5992856/

And we also added some other blacklisted domains (excluded_domains.txt):

.(none)

91177308-0d34-0410-b5e6-96231b3b80d8

samo-laptop.(none)

dd0e9695-b195-4be7-bd10-2dea1a65a6b6

ubuntu.(none)

b8fc166d-592f-0410-95f2-cb63ce0dd405

b9a71923-0436-4b27-9f14-aed3839534dd

b2dd03c8-39d4-4d8f-98ff-823fe69b080e

0b4bb1d4-4e5a-0410-9cc4-b2b747904278

709f56b5-9817-0410-a4d7-c38de5d9e867

iki.fi

Gmail.com

none

example.com

1a063a9b-81f0-0310-95a4-ce76da25c4cd

localhost.localdomain

localhost

localhost.(none)

home

b8457f37-d9ea-0310-8a92-e5e31aec5664

li7-202.members.linode.com

g

users.noreply.github.com

us.door43.org

mailinator.com

smullindesign.com

review.openstack.org

nyarlabo.com

boston.com

li.gugod.org

niob.xnis.de

sly.mn

kazer.org

recoil.org

tsaousis.gr

rituwall.com

cbrese.com

renovateapp.com

scrapers.everypolitician.org

Step-by-step code walkthrough

Load BigQuery results

from tqdm.notebook import tqdm
 
import pandas as pd
import numpy as np
 
tqdm.pandas()
 
df = pd.read_csv("./email_domains_large.csv")

Merge the list of domains we want to exclude:

free_providers = list()
with open("./free_email_provider_domains.txt", "r") as f:
    for line in f.readlines():
        free_providers.append(line.strip())
excluded_emails = list()
with open("./excluded_domains.txt", "r") as fe:
    for line in fe.readlines():
        excluded_emails.append(line.strip())
free_providers = free_providers + excluded_emails

Add a new column to the dataset, whether the domain is a free email providers’ domain

df["free"] = df["email_domain"].progress_apply(lambda x: x in free_providers)

Create a list without the email providers

df_filtered = df[(~df["free"])].copy()

Add a row counter and limit the data to those domains that appear at least once among the top 30. This will make the final dataframe smaller and easier to handle.

rn = list()
for _, df_tmp in df_filtered.groupby("month"):
    t = list(range(df_tmp.shape[0]))
    rn += t
df_filtered["rn"] = rn
domains = np.unique(df_filtered[df_filtered["rn"] <= 30]["email_domain"])

Step #3: format data

As it was mentioned before, we used Flourish to create the video. In some cases there were empty months (the company didn’t have any commits) and Flourish expected the columns to be months not companies. So we had to make this transformation too.

Step-by-step code walkthrough

df_final = df_filtered[df_filtered["email_domain"].apply(lambda x: x in domains)].copy()
df_final["month"] = pd.to_datetime(df_final["month"])
date_range = pd.date_range(np.min(df_final["month"]), np.max(df_final["month"]), freq="MS")
 
temp_df_list = list()
for _, repo_data in df_final.groupby("email_domain"):
 
    df_temp = pd.DataFrame()
    df_temp["month"] = date_range
    df_temp = df_temp.merge(repo_data, on="month", how="left")
    df_temp.fillna(method="ffill", inplace=True)
    df_temp["email_domain"].fillna(method="bfill", inplace=True)
    df_temp.fillna(0, inplace=True)
    temp_df_list.append(df_temp)
 
df_full_data = pd.concat(temp_df_list, ignore_index=True).sort_values(["month", "domain_count_rolling"], ascending=[True, False])

df_chart_race_final = pd.DataFrame()
df_chart_race_final["email_domain"] = list(df_full_data["email_domain"].unique())
 
for current_month, monthly_data in df_full_data.groupby("month"):
    month_name = current_month.strftime("%Y-%m") 
    
    df_temp = df_full_data[["month", "email_domain", "domain_count_rolling"]].query("month == @current_month")
    df_chart_race_final = df_chart_race_final.merge(
                df_temp.drop("month", axis=1).rename(index=int, 
                                             columns={"domain_count_rolling": month_name}), 
                on="email_domain", how="left")

The full notebook can be found here.

Final word

More and more companies are recognizing the importance of open source software development and are committed to support it. 

We hope that visualizing just a slice of the data that these amazing men and women generate round the clock is a way to acknowledge their hard work. Thanks to them and the millions of hours they invested to build open source products, we get to use our everyday apps and software seamlessly. 

Thank a developer today!

About

Adrienn Tordai
Growth Marketer / Pizza Enthusiast @CodersRank. I love the Blue Jays, books, and The Office. Tell Elon I said hi. Always waiting for a Steam sale. | CodersRank: Our goal is supporting DEVELOPERS’ growth by their always up to date, professional CodersRank profile

Categories
Community Tips

Infographic: Who is behind open-source software?

In our 18th survey wave, we’ve asked developers whether they contribute to open-source software, and if so, why? In this post, we’ll explore who the contributors to open-source software are, their reasons for contributing, and finally what open-source support they expect from companies.

Open-source contributors tend to be younger than non-contributors.

More than a third (33%) of developers who contribute to open-source software are less than 24 years old as compared to 26% of non-contributors. This is not to say that they are inexperienced programmers; 41% of open-source contributors have 1 to 5 years of experience, 4 percentage points higher than non-contributors.

Contrary to what one might think, open-source contributors are not necessarily professionals. In fact, they are equally likely to be amateurs than non-contributors. You don’t have to be working professionally in the software industry to be involved and contribute to open-source software development.

Open-source contributors are more likely to be involved in multiple development areas than non-contributors. However, open-source contributors are significantly more likely to be involved in emerging sectors such as machine learning/AI and AR/VR, where innovations are mostly driven by open-source tools.

Finally, as you’d expect, developers’ likelihood of contributing to open-source software is also reflected in their activity on the most popular open-source hosting site, Github. The correlation is clear. Two-thirds of developers who don’t contribute (67%) have no personal public repositories on Github, whereas close to half of the contributors (48%) have two or more public repositories. We observe a somewhat similar relationship with Stack Overflow. Non-contributors are significantly more likely to not use the Q&A site at all or visit the site but not have an account. On the other hand, open-source contributors are twice as likely as developers who don’t contribute to have earned at least one badge (30% vs 15%). Working on open-source projects encourages developers to actively engage with their peers on Q&A sites. We’ve seen which developers contribute to open-source software projects. Let’s now dive into the reasons for contributing.

Why contribute to open-source software

Developers are most motivated to contribute to open-source projects to improve coding skills (29%) and a belief in the benefits of open-source (26%). What’s more, 22% of developers contribute to open-source software because it’s fun or to solve an issue with an existing open-source software project such as fixing a bug or creating a new feature.

By contrast, financial compensation is the least important motivation. Only 3% of developers are getting paid for their work on open-source projects. As it turns out, developers are more likely to get involved in open-source projects to build their reputation (14%) or to network (11%) rather than for direct financial gain. Furthermore, developers who get paid to contribute are almost 20 percentage points less likely to think it’s fun than those who contribute for other reasons. They are also significantly less likely to believe in open-source as a source of freedom, as an ideological imperative. 

Typically developers don’t contribute to open-source for a single reason but are motivated by multiple factors. For example, half of the developers who contribute to open-source for improving their coding skills also think it’s fun. 56% of contributors who want to network also feel like it makes them belong somewhere.

What developers expect from companies

In our Q4 2019 Developer Economics survey, we also asked developers what open-source support they expect from companies. Thirty-three percent of developers not contributing to open-source don’t expect anything from companies, as compared to 15% among open-source contributors. That said, two-thirds of non-contributors still think that companies should be involved and provide support to the open-source software movement; they realise how important open-source is and believe that companies should be a part of it.

On the other hand, 44% of open-source contributors expect companies to support and contribute to open-source communities. This increases to 55% for developers who contribute to solve an issue. Many contributors (44%) expect full documentation on how to use open-source software on companies’ products or services. This is especially important to developers who get paid for their work (53%).

Interestingly, open-source developers do not necessarily expect companies to build products and services upon open-source software (39%). This is the least important vendor expectation from developers in terms of support for open-source software.

Open-source software contributors are a diverse group of people. Their motivations to contribute range from learning, having fun, solving issues to building relationships and reputations. In summary, developers have plenty of reasons to contribute to open-source, and they expect companies to support them along the way. 

If you are involved in open-source and want to share your views, visit our latest survey and help shape the trends.

Categories
Tips

Where do ML developers run their code?

In this blog post we’ll explore where ML developers run their app or project’s code, and how it differs based on how they are involved in machine learning/AI, what they’re using it for, as well as which algorithms and frameworks they’re using.

Machine learning (ML) powers an increasing number of applications and services which we use daily. For some organisations and data scientists, it is not just about generating business insights or training predictive models anymore. Indeed, the emphasis has shifted from pure model development to real-world production scenarios that are concerned with issues such as inference performance, scaling, load balancing, training time, reproducibility, and visibility. Those require computation power, which in the past has been a huge hindrance for machine learning developers.

A shift from running code on laptop & desktop computers to cloud computing solutions

The share of ML developers who write their app or project’s code locally on laptop or desktop computers, has dropped from 61% to 56% between the mid and end of 2019. Although the five percentage points drop is significant, the majority of developers continue to run their code locally. Unsurprisingly, amateurs are more likely to do so than professional ML developers (65% vs 51%).

By contrast, in the same period, we observe a slight increase in the share of developers who deploy their code on public clouds or mainframe computers. In this survey wave, we introduced multi cloud as a new possible answer to the question: “Where does your app/project’s code run?” in order to identify developers who are using multiple public clouds for a single project.

As it turns out, 19% of ML developers use multi cloud solutions (see this multi-cloud cheat sheet here) to deploy their code. It is likely that, by introducing this new option, we underestimate the real increase in public cloud usage for running code; some respondents may have selected multi cloud in place of public cloud. That said, it has become increasingly easy and inexpensive to spin up a number of instances and run ML models on rented cloud infrastructures. In fact, most of the leading cloud hosting solutions provide free Jupyter notebook environments that require no setup and run entirely in the cloud. Google Colab, for example, comes reinstalled with most of the machine learning libraries and acts as a perfect place where you can plug and play to build machine learning solutions where dependency and compute is not an issue.

While amateurs are less likely to leverage cloud computing infrastructures than professional developers, they are as likely as professionals to run their code on hardware other than CPU. As we’ll see in more depth later, over a third of machine learning enthusiasts who train deep learning models on large datasets use hardware architectures such as GPU and TPU to run their resource intensive code.

Developers working with big data & deep learning frameworks are more likely to deploy their code on hybrid and multi clouds

Developers who do ML/AI research are more likely to run code locally on their computers (60%) than other ML developers (54%); mostly because they tend to work with smaller datasets. On the other hand, developers in charge of deploying models built by members of their team or developers who build machine learning frameworks are more likely to run code on cloud hosting solutions.

Teachers of ML/AI or data science topics are also more likely than average to use cloud solutions, more specifically hybrid or multi clouds. It should be noted that a high share of developers teaching ML/AI are also involved in a different way in data science and ML/AI. For example, 41% consume 3rd party APIs and 37% train & deploy ML algorithms in their apps or projects. They are not necessarily using hybrid and multi cloud architectures as part of their teaching activity.

The type of ML frameworks or libraries which ML developers use is another indicator of running code on cloud computing architectures. Developers who are currently using big data frameworks such as Hadoop, and particularly Apache Spark, are more likely to use public and hybrid clouds. Spark developers also make heavier use of private clouds to deploy their code (40% vs 31% of other ML developers) and on-premise servers (36% vs 30%).

Deep learning developers are more likely to run their code on cloud instances or on-premise servers than developers using other machine learning frameworks/libraries such as the popular Scikit-learn python library. 

There is, however, a clear distinction between developers using Keras and TensorFlow – the popular and most accessible deep learning libraries for python – compared to those using Torch, DeepLearning4j or Caffe. The former are less likely to run their code on anything other than their laptop or desktop computers, while the latter are significantly more likely to make use of hybrid and multi clouds, on-premise servers and mainframes. These differences stem mostly from developers’ experience in machine learning development; for example, only 19% of TensorFlow users have over 3 years of experience as compared to 25% and 35% of Torch and DeepLearning4j developers respectively. Torch is definitely best suited to ML developers who care about efficiency, thanks to an easy and fast scripting language, LuaJIT, and an underlying C/CUDA implementation.

Hardware architectures are used more heavily by ML developers working with speech recognition, network security, robot locomotion and bioengineering. Those developers are also more likely to use advanced algorithms such as Generative Adversarial Networks and work on large datasets, hence the need for additional computer power. Similarly, developers who are currently using C++ machine learning libraries make heavier use of hardware architectures other than CPU (38% vs 31% of other developers) and mainframes,  presumably because they too care about performance.

Finally, there is a clear correlation between where ML developers’ code runs and which stage(s) of the machine learning/data science workflow they are involved in. ML developers involved in data ingestion are more likely to run their code on private clouds and on-premise servers, while those involved in model deployment make heavier use of public clouds to deploy their machine learning solutions. 31% of developers involved across all stages of the machine learning workflow – end to end – run code on self hosted solutions, as compared to 26% of developers who are not. They are also more likely to run their code on public and hybrid clouds. 

By contrast, developers involved in data visualisation or data exploration tend to run their code in local environments (62% and 60% respectively), even more so than ML developers involved in other stages of the data science workflow (54%).

Developer Economics 18th edition reached 17,000+ respondents from 159 countries around the world. As such, the Developer Economics series continues to be the most global independent research on mobile, desktop, industrial IoT, consumer electronics, 3rd party ecosystems, cloud, web, game, AR/VR and machine learning developers and data scientists combined ever conducted. You can read the full free report here.

If you are a Machine Learning programmer or Data Scientist, join our community and voice your opinion in our current survey to shape the next State of the Developer nation report.

Categories
News and Resources Tips

Developer Certification Programs to help boost your career

You are finally ready to pursue your career as a developer. Well, a big fat congratulations to you! It’s high time your homework begins! Whatever you choose to become, it does require a sincere commitment of time, effort, and resources (e.g. developer certification programs). You will need to make some hard choices such as which programming language to kick off with (find out which are the top programming languages communities to look out for), or what development area to focus. Keep in mind that on average developers are involved in five sectors concurrently. However, on top of programming and coding skills you will also need to work on your project management skills. You also may need to dive into the Agile Manifesto

Can you guess how many software developers are there in the world? According to the most recent Global Developer Population report,  in the beginning of 2019 there were just under 19 million active software developers. Out of these, 13M are software professionals.

We have used our current methodology to produce estimates of the global developer population for the past four half-year periods. Each estimate was produced independently of the others. This reveals an increase in the developer population of 4.2M developers since mid 2017, or an annual growth that hovers around 20%.
We have used our current methodology to produce estimates of the global developer population for the past four half-year periods. This reveals an increase in the developer population of 4.2M developers since mid 2017, or an annual growth that hovers around 20%. This growth rate seems to be accelerating, although it is based on just a few periods.

Day in day out, the population is growing at over 20% annually. This means you need to stand out from the competition. Now before we proceed any further, we need to understand the value of developer certifications. Why are they important? Why is there so much hype on gaining certificates and investment done in training? The added value is pretty much substantial. And merits can be bifurcated into two categories: What value certificates bring to individuals? How they affect decisions made by organizations?

Value to individuals

  1. Professional credibility: This describes your future relationship between co-workers and supervisors. You demonstrate the fact that you have developed certain skills that need to be possessed to succeed. Also, you are willing to put all the time and effort that needs to get certified. 
  2. Personal Satisfaction: There are times when we feel like an expert. After several years of knowledge, we step into the workspace with confidence and end up asserting ourselves.
  3. Salary: An individual with more IT certifications has the potential to make much more than those with just one certification. Additional certifications are not a bad thing after all. 

Overall professional growth and career advancement require you to learn present and upcoming technologies and enhance the skills you currently possess. 

Value to organizations 

  1. Job requirements: With the continuous advancement in technology, there’s a need to have subject matter experts on new topics. 
  2. Filling skill gaps: According to many software development companies, skill gaps are can be put a strain and the best way through these, is extensive training. Of course, there is no denying the fact that certified employees can lead to greater productivity. They can increased workforce morale, as well as knowledge shared across the entire department.  
  3. Retention – Job satisfaction results in greater staff retention. Employees who feel fulfilled and satisfied from inside are less likely to pursue other employment.

It’s Time to make the right choice – Answer the following questions

  • What do I want to accomplish? 
  • What am I interested in? 
  • Have I done my homework yet? 
  • What resources should I consider using? 
  • What’s next? 

Further below you will find certain software developer certification programs that can surely aid you in boosting your career.

1. Microsoft (MTA): This certification, in particular, is crucial for high school and college students around. Right from web development to software development, mobile, gaming, and more, the program offers it all! It depends upon you whether you achieve certification on a single track or several. 

2. Microsoft Azure: I am pretty sure you must have come across this certification. After all it is one of the most highly recognizable in the IT industry. This certification in particular also has the potential to carry a considerable cachet. Furthermore, with Azure, you’ll build, manage, and deploy scalable, highly available, and performant web applications.

3. Oracle (OCP, OCM, OCE): Unlike others, Oracle offers numerous Oracle Java Certifications at several levels such as Associate professionals (OCP), Master (OCM), Expert (OCE). The professional-level certification typically requires you to have an OCP Java Certification for a programmer. Otherwise, you must have a Sun certified Oracle Java Certification for programmer credential as a prerequisite. Exams taken here are all multiple choice and some include scenario-based questions as well. Also, there is the option of Oracle certified professional MySQL course, for developers who write applications for MySQL database servers. Fortunately, this slot has no prerequisites but Oracle itself does recommend you take the MySQL for developer certification. This exam is single-level and focuses on practitioner-level skills in all aspects of developing MySQL applications: architecture, syntax, design, modification and the list goes on.  

4. Amazon Web Services (AWS): Amazon Web Series provides scalable cloud computing for creating web applications. Being an AWS certified developer means the associate level is for developers who design and run applications on the AWS platform. Also, here the credentials come with no prerequisites but that doesn’t mean you should take it lightly. You must take a multiple-choice exam on AWS fundamental, plus designing, developing, and deploying cloud-based solutions, security, and debugging.

5.  Salesforce: With the rise in Salesforce development companies, organizations are searching for professionals with this certification. Initially developed as one of the original providers of enterprise customer relationship management (CRM). It now focuses on many facets of enterprise cloud computing and applications. The company’s entry-level certification identifies developers capable to design as well as build custom applications and analytics using the Force.com platform. Salesforce recommends that you take the Building Applications with Force.com and Visualforce training courses to prepare for the exam. To achieve certification, you must pass an exam that covers application design, the Force.com platform, data modelling, user interface, logic, data management, reporting, and analysis. Next, you can move on to the Salesforce.com Certified Advanced Developer certification. This focuses on skills required to use Apex and Visualforce to build custom applications, create test plans and perform tests, and manage the development lifecycle and environments. The organization’s Developer certification is a prerequisite. 

6. Scrum: Another interesting developer certification course you must consider is in the Scrum alliance. For those new to the Agile Manifesto , Scrum.org  is a member-based organization. It promotes the use of Scrum through education, advocacy, and networking/collaboration. The entry-level Scrum Alliance certified Scrum Developer (CSD) certification targets developers who understand Scrum principles and have knowledge of specialized Agile engineering skills.  

7. Project Management: Last but certainly not least, the Project Management Institute. An organization that offers numerous software development related certifications including the PMI Agile Certified Practitioner (PMI – ACP). The cert recognizes developers with knowledge of agile project management principles, practices, tools, and techniques. All you require having is: 

  • 2000 hours of general project experience working on project teams, or an active PMP or pgMP certification
  • 1500 hours working on Agile project teams or with methodologies
  • 21 contact hours in agile practices

The exam covers agile tools, techniques, knowledge, and skills. PMI has a strong relationship with academia. You’ll find that many colleges and universities offering courses on its certifications include the PMI-ACP.

What other courses have you taken or are considering taking? Have you attended any physical courses lately?

Charles Richard, is a Business Analyst at TatvaSoft UK. Besides his profession, Charles likes to share some new and trending technical aspects. To know more about his leading software development company in London, please visit www.tatvasoft.co.uk

Categories
Tips

5 Challenges for a Freelance Developer

Thinking about becoming a Freelance Developer? Freelancing can provide overall freedom for you to decide your working hours and salary. Let’s go over some common challenges, pros, cons and trade-offs you may encounter choosing this career path. Hopefully, my experience will help you make an informed decision.

Challenge #1: Steady Income

A strong point in favour of a regular job is a steady income. As a freelance developer, you have to face reality. While there is no real cap to how much you can make, there will be peaks and troughs in your monthly income. 

High and low seasons won’t necessarily follow each other in fixed intervals. In other words, be prepared for long periods of low income especially during your first couple of years.

Pro Tips

Aside from the services you may provide, do your best to generate passive residual income. Maybe consider an app that sells revenue, unobtrusive ads on your website or even a channel on a streaming website. There are many options to choose from nowadays.

Save as much as you can when you are in the high season! Conduct yourself in a frugal manner and eventually, you’ll figure out how much you can add in your expenses without dipping into your savings. You can always use an app to help you manage your finances!

If you still live with your parents, do not rush to move out. Save as much as you can (and make sure to help your parents with the bills). When your savings and your base income are healthy enough, then plan accordingly to find your own space. As a freelance developer, you’ll have steady expenses but not a steady income. Getting involved in the finances of your home will give you firsthand knowledge of how things work. Even if you are fortunate enough and there is no need for you to assist in the household expenses, still offer to handle some of the bills, as this will be part of your learning process.

Challenge #2: Time Management

It’s in the name, Free-lancing! You are your own boss and you have total control over your time. This is a huge pitfall when it comes to freelancing. Indeed you can start your workday after 10 am but watch out. You may not be as productive as you’re hoping to be. Unexpected things come up. Your computer may break, your internet service may stop working and a number of other things could go wrong.

As developers, we pretty much get paid to figure things out and make them simpler and more accessible to everyone else. There are times when no matter how much planning you put into it, the beautifully crafted algorithm will not work and it doesn’t have to be a syntax error. It might be something far more insidious than that. For instance, back in 2006, I was working on an HTML project and wanted to track the checkboxes that were not checked by the user once a form was sent. It took me days to realize that unchecked checkboxes are simply not posted when the form is submitted. As simple it may sound, this was one of those things that you learn from a painful and time-consuming experience.

Pro Tips

Discipline is key for proper time management. Learn how to say “NO” when you have to. You love solving problems and helping people, I get that. However, don’t forget that your freelancing career is only as serious as you take it and your clients can sense that from a mile away. 

Set a working schedule for yourself and stick to it. It might not be easy but it will be totally worth it. If you have a strong reason to miss work, at least make sure you have some wiggle room to make up for that time. 

One tip to always keep in mind: Watch out for the holiday season. If you choose so, holidays may not limit your capacity to work but will probably limit your clients’ availability to answer your phone calls or emails, should you need anything from them.

*** Time Management is closely connected to productivity but we’ll cover that further in challenge #4

Challenge #3: Deliverables

Developers are responsible for solving problems. Many times very simple problems but others very complex ones. Your capacity to deliver such solutions will determine how successful you may be. Clients will do their best to communicate their needs to you. More often than not they will fail at getting their point across. Pay attention to every detail,- the context of the problem, the scope of the problem- and try to connect the dots between what they say, what they mean and what you understand.

Clients will do their best to communicate their needs to you. More often than not they will fail at getting their point across. Pay attention to every detail,- the context of the problem, the scope of the problem- and try to connect the dots between what they say, what they mean and what you understand.

Pro Tips

Be honest with your clients. If you can’t deliver a solution, let them know. You are not required to know everything. Mutual trust is something built over time and if you feel that -while you are not an expert in a subject- you may conquer the learning curve to deliver the solution, communicate it to your clients.

Communication is key. If a client hasn’t heard from you in weeks they may think that you have abandoned them. You do not need to email or contact them every day, but often enough to keep them up to date with the ongoing process of the contracted work.

Challenge #4: Being Productive as a Freelance Developer

This happens to be one of the toughest things to keep up with as a Freelance Developer.  It depends a lot on overcoming the previously mentioned challenges. Many times your productivity will peak when you need it the least (low season for example) and fail you when you need it the most.

In reality, this is a challenge for everyone, even people with steady full-time jobs. It puts extra weight and stress on a Freelance Developer because you’ll need to handle everything on your own, even more so at the beginning. You need to be your own boss, accountant, assistant, supervisor, public relations expert, customer support, and so many more. Say NO to yourself when you want to say YES, can be soul tempering as much as it can be disappointing, but it is critical.

Pro Tips

The road to a productive day is an exploratory journey. Know yourself, balance how much you demand and how much you reward yourself, do your best to be the boss you wish you had but also the employee you wish to have. Don’t forget to exercise, eat well, sleep and keep an eye on your health as your body and mind are the most important tools for you to provide your services. 

We tend to use our computers for everything we do: work, watch series and movies, play or stream games, catch up with friends and family, read and anything else possible., etc. I did it for a long time until I got my hands on an old console and noticed how much more productive I got. Separate these things. When your computer is your go-to for everything, you’ll want to play when it’s time to work and vice-versa. There’s nothing wrong with playing video games in an old console, reading an old book or switching to an old e-reader. Don’t let the trends make you waste money and time you don’t have. Every cent and every minute counts.

Challenge #5: Keeping up with the Industry

A new Javascript framework is born every day. Keeping up has to do with learning new things as it has to do with discerning which things are worth learning. Depending on your choice of stack or target for software development this can be very complicated and time-consuming.

Desktop, Web or Mobile, each have their own set of programming languages, database choices, architectures, distribution systems, update cycles and so much more.

Pro Tips

Choose a single target first and mature in it. Try to be a shark, a horse or an eagle, never a duck, yes the duck can fly, swim and run but never as good as the ones mentioned above. Master one domain before adding a second one. Trends can be very misleading, so be careful. Just because everyone loves or hates the “new” thing, that doesn’t mean you should do too. 

Be critical, read, compare, test, research and make informed decisions – at the end of this article, you’ll find some indicative useful links of sites and tools for that.  You’ll find an outstanding feeling of realization and meaning when you take your algorithms and carefully improve them, remember there’s nothing wrong with making mistakes. In reality, this is a core part of a healthy learning process. However small the step forward it may seem, it’s still a step forward. Code bases and apps are improved in tiny percentages in different areas which add up to a much larger percentage of improvement. 7% Faster on the client-side, 12% faster on the server-side, 16% faster and better-indexed queries switching png icons for SVG’s, removing unused assets and before you know it, your website, web-based or mobile app can be much faster and deliver a much better overall experience.

Conclusions from the Life of a Freelance Developer

As a freelance developer your path can be very rewarding and fulfilling as long as you always do your best. Even if getting the job done might not be enough sometimes, you will still have the certainty that you gave it your 100%. This will soon add up to your advantage.

The beautiful process of learning a new skill and putting it into practice, giving life to an idea, watching it unfold is pure science. This will provide you with a real and palpable sense of achievement and purpose. You start with a simple “hello world” in your first programming language and as you progress it gets more difficult but more interesting as well. Trial and error, you learn, you grow, you overcome or fail. Do it every day, code a little and become more competent.

The dynamics between the known, the unknown and the threshold you cross to narrow that gap is what’s so engaging about the freelance developer lifestyle. Conquer yourself as you conquer new skills.

Useful sites for reading and researching:

Useful sites and tools for testing & benchmarking:

Short Bio: Darwin Santos is a Web Developer from the Dominican Republic and has been a member of the Developer Economics Community since 2017. He specializes in web-based ERP/CRM hybrids and health care systems. He has been working with web technologies since the early 2000s. Several of his deployments have been running for years and are constantly improved and updated. He is also very experienced in database design, data normalization and data migration, with several successful migrations of 20+ years worth of data under his belt. He prefers functional and procedural programming over OOP.

LinkedIn: https://www.linkedin.com/in/darwin-santos-3a5b4066/

Categories
Events Tips

Job Fairs for Tech Seekers

How easy is it for a developer to find a job? Someone would say really easy, given that developers are high in demand worldwide, but getting just the right job can be tricky.

You know, that job which will allow you to work remotely, on your own time schedule, offering training opportunities and also feel like you are making a difference. Believe it or not, this job really exists and finding it is easier than you thought.

Why choose a job fair?

For software engineers who are looking for an environment that will boost their productivity and most importantly their creativity, tech job fairs might be the best option for their search. Here’s why:

  • Networking. It’s the right place to establish meaningful connections & relationships with company representatives and other fellow developers.
  • You get to meet the company’s employees. Talk face to face (leaving aside the formality of an email) and ask the questions that are really troubling you, such as “Does the company provide a supportive environment for studies?” and many more.
  • Getting ahead of the competition. Let’s face it, even a spotless CV cannot compete with the lasting first impression. While a well-written resume can reflect your skills and experience, it could never show the soft skills employers are looking for.

Depending on the stage of your career and your geographic location, job fairs may be the next destination for your job search. That’s why we did the research for you! Below we have gathered some of the most interesting job fairs running in Europe & USA, for tech job seekers.

Tech Job Fairs in Europe:

  • London Tech Job Fair Spring 2020 by TechMeetups.com
    Pricing: FREE (VIP Job Seeker Pass €10.00 + €1.83 Fee)
    Venue: Central Foundation Boys’ School, Cowper Street, London, EC2A 4SH
    Country: United Kingdom
    Date: Thu, 27 February 2020, 18:30 – 21:00
    Hiring companies: causaLens, Digital insight, Workindenmark & more
  • Munich Tech Job Fair Spring 2020 by TechMeetups.com
    Pricing: FREE (VIP Job Seeker Pass €10.00 + €1.83 Fee)
    Venue: Munich (More info TBA)
    Country: Germany
    Date: Thu, 19 March 2020, 18:00 – 21:00
    Hiring companies: Jobsens.ai, Actyx, Hubert Burda Media, KAL & more
  • Barcelona Tech Job Fair Spring 2020 by TechMeetups.com
    Pricing: FREE (VIP Job Seeker Pass €10.00 + €1.83 Fee)
    Venue: Ilunion Hotel Barcelona, Carrer de Ramon Turró, 196-198, 08005 Barcelona
    Country: Spain
    Date: Thu, 26 March 2020, 18:00 – 21:00
    Hiring companies: Nestle, Netcentric, Workindenmark & more
  • Tech Job Fair Berlin by Tech Job Fairs
    Pricing: FREE
    Venue: Deutsche Telekom AG Hauptstadtrepräsentanz, Französische Straße 33a-c, 10117 Berlin
    Country: Germany
    Date: Thu, 16 April 2020, 15:00 – 20:00
    Speakers: QT, Cern, Deutsche Telekom, Zizoo, & more
  • Amsterdam Tech Job Fair Spring 2020 By Techmeetups
    Pricing: FREE (VIP Job Seeker Pass €10.00 + €1.83 Fee)
    Venue: Software Improvement Group, Fred. Roeskestraat 115, Amsterdam, 1076
    Country: Netherlands
    Date: Thu, 23 April 2020, 18:00 – 21:00
    Hiring companies: KLM Royal Dutch Company, Reducept & more
  • Bern Tech Job Fair 2020 By Techmeetups
    Pricing: FREE (VIP Job Seeker Pass €10.00 + €1.83 Fee)
    Venue: Berner GenerationenHaus – Spittelsaal, Bahnhofplatz 2, Postfach 3001 Bern, 3001 Bern
    Country: Switzerland
    Date: Thu, 30 April 2020, 18:00 – 21:00
    Hiring companies: MIACAR, TieTalent.com & more
  • Zurich Tech Job Fair Spring 2020 By Techmeetups
    Pricing: FREE (VIP Job Seeker Pass €10.00 + €1.83 Fee)
    Venue: VOLKSHAUS ZÜRICH – Weisser Saal, Stauffacherstrasse 60, CH-8004 Zürich
    Country: Switzerland
    Date: Wed, 6 May 2020, 18:00 – 21:00
    Hiring companies: Contovista, MIACAR, TieTalent, Nortide & more
  • Tech Job Fair Vienna by Tech Job Fairs
    Pricing: FREE
    Venue: Aula der Wissenschaften, Wollzeile 27a, A-1010 Vienna
    Country: Austria
    Date: Wed, 13 May 2020, 14:00-20:00
    Speakers: Willhaben, Global Blue, Voi, Coders.Bay, Women And Code, & more
  • Madrid Tech Job Fair 2020 By Techmeetups
    Pricing: FREE (VIP Job Seeker Pass €10.00 + €1.83 Fee)
    Venue: Wild Code School Madrid, Calle de Serrano Anguita 10, Madrid
    Country: Spain
    Date: 14 May 2020, 18:00 – 21:00
    Hiring companies: AG Solution, Wild Code School & more
  • Hamburg Tech Job Fair 2020 By Techmeetups
    Pricing: FREE (VIP Job Seeker Pass €10.00 + €1.83 Fee)
    VenueHamburg (More info TBA)
    Country: Germany
    Date: Wed, 20 May 2020, 18:00 – 21:00
    Hiring companies: TBA
  • Stockholm Tech Job Fair Spring 2020 By Techmeetups
    Pricing: FREE (VIP Job Seeker Pass €10.00 + €1.83 Fee)
    Venue: Things, Drottning Kristinas väg. 53, Stockholm, 114 28 Stockholm
    Country: Sweden
    Date: Thu, 28 May 2020, 18:00 – 21:00
    Hiring companies: TBA
  • Tech Job Fair Lisbon by Tech Job Fairs
    Pricing: FREE
    Venue: Lisbon (More info TBA)
    Country: Portugal
    Date: Thu, 24 September 2020, 15:00 – 20:00
    Speakers: BNP Paribas, IAESTE Portugal, Grow Remote, Zoi & more
  • Tech Job Fair Zurich by Tech Job Fairs
    Pricing: FREE
    Venue: VOLKSHAUS / WEISSER SAAL, Stauffacherstrasse 60, 8004 Zürich
    Country: Switzerland
    Date: Thu, 15 October 2020, 15:00 – 20:00
    Speakers: Onedot, Voi Technology, talent4gig, SwissPropTech & more

Tech Job Fairs in the USA

  • IoT World Careers Fair by Informa Tech
    Pricing: FREE
    Venue: San Jose McEnery Convention Center, 150 West San Carlos Street, San Jose, CA 95113
    Country: United States
    Date: Wed, April 8, 2020, 14:00-17:00
  • WITI Annual Summit Career Fair by Professional Diversity Network
    Pricing: FREE
    Venue: Hyatt Regency San Francisco Airport, 1333 Old Bayshore Hwyr, Burlingame, CA 94010
    Country: United States
    Date: Wed, June 24, 2020, 10:30 – 14:30

What next?

Hopefully, this article helped some of you out there, searching for your next step. If you want more career advice, a while back we had a look into the Game Designer evolution and navigating between product and custom software development.

If you’ve heard of any other Job Fairs focusing on the tech industry please go ahead and leave us your comment.

Categories
Community Languages Tips

The Latest Topics Developers Are Reading

What are the latest topics developers are reading? Some things change and others stay the same. When we looked at our data on what developers were reading in Q2, data and analytics, Jakarta, cloud-native, Kubernetes and Open Source topped the list.

In Q3 analytics (together with data) remained high on the list, but a few other topics emerged. The whole “shift left” movement is hot, as is security and anything related to “full stack”.

Here’s how we do the analysis. With 29 million unique readers every year, we decided to evaluate the data on DZone.com from quarter to quarter. In this post, I’m also looking at Q1 to Q3.

Keep in mind the pageview comparisons provide insight into what developers are reading and interested in learning about. The tags used to collect our data are assigned by our editors and used to help readers search once they’re on our site. They aren’t keywords.

So, with that in mind, let’s take a look at what’s trending right now.

The Latest Topics Developers Are Reading:

Data + Analytics = Popular Reading

This quarter, we saw significant growth in the following topics: “data analysis tools,” which grew by about 3343% from Q1 to Q3, “data application,” showing 37% growth from Q2 to Q3 and 950% from Q1 to Q3, and lastly “augmented analytics,” which grew by 21% from Q2 to Q3 and 1108% from Q1 to Q3.

It’s no secret that our world is becoming increasingly data-driven. As this article series has discovered time and again, data and analytics dominate software trends.

One pivotal factor in data analytics is the use of Python. Python can wear many hats. Heavily used in back-end development, it’s also beginning to dominate algorithms, analytics software, and the entirety of a data project’s lifecycle. Python data tools can be found for data collection, data modeling, and data visualization.

As computer scientists get more and more involved in data science, they are using Python to write algorithms, explains Michael O’Connell, chief analytics officer at TIBCO. This is resulting in a major surge in Python libraries and data analytics tools based in this language. “Computer scientists and mathematicians are starting to blend,” he says.

Another term that saw tremendous growth this quarter, and this year, is the concept of augmented analytics.

augmented analytics growth

“In order to bring AI forward, we need to understand brain structures better,” O’Connell says.

This will help process and analyze data much faster.

“I think what people have started to realize is that time is very precious and continues to become even more precious. Data volume is increasing. The need for insights in real-time is increasing. So, the only way you can do that is through augmenting your intelligence effectively by building solutions that don’t give you the answer but provide you smarter ways of being able to slice and dice information.”

No matter your job title, whether you’re a developer, project manager, marketer, or something entirely different, any and every profession will benefit from smarter data collection, processes, and tools.

Automated Testing Topics Show Growing Interest

Interest in automated testing grew steady among DZone.com readers over the last 9+ months. “Shift left,” a term meaning to ‘test early, and test often,’ has taken over the SDLC — developers are looking for more tools and frameworks that can easily integrate tests with minimal amounts of code.

This is where testing platforms like Selenium and Katalon Studio come in handy. These platforms allow testers to avoid manually writing tests. They can also create automated tests throughout dev environments.

Here’s a look at how these automation testing topic tags performed:

  • Automation testing tool grew over 60% from Q2 to Q3 and 1176% from Q1 to Q3
  • Selenium test automation grew over 23% from Q2 to Q3 and 1053% from Q1 to Q3
  • Testing frameworks grew 22% from Q2 to Q3 and over 641% from Q1 to Q3.

“The process of creating automation tests shouldn’t require writing extra code,” explains Jason Simon, (@jason_c_simon) freelance web developer, and tech writer. “Eventually, as we’re getting more and more code-free, this will not just be popular in test tech but in all parts of software development. The idea is to have business analysts doing a lot of the programming logic, without actually having to write a single line of code.”

 Automation testing tool grew over 60% from Q2 to Q3 and 1176% from Q1 to Q3 Selenium test automation grew over 23% from Q2 to Q3 and 1053% from Q1 to Q3 Testing frameworks grew 22% from Q2 to Q3 and over 641% from Q1 to Q3.

Simon predicts that in 2020, as testers write less and less code, the testing process will become more autonomous, with companies even adopting AI bots to automatically test new features. So basically, your test code will begin to automate itself. How cool is that?

The latest topics developers are reading on the Rise of Modern Security

Basic authentication and password management no longer cut it. The end of 2018 and early parts of 2019 were all about adopting basic security hygiene. But now, we’ve got to get more sophisticated and intentional about security — in all aspects of the development lifecycle.

This quarter, we saw topic tags such as “JSON web token,” grow over 190% from Q2 to Q3, “cloud security issues,” grow about 10% from Q2 to Q3 and 434% from Q1 to Q3, and “web vulnerabilities,” grow by 18% from Q2 to Q3 and 459% from Q1 to Q3.

Hackers are getting smarter, so companies and developers have to get smarter and more strategic about security practices. This is giving rise to the skyrocketing interest specifically around JSON Web Tokens and cloud security.

This quarter, we saw topic tags such as “JSON web token,” grow over 190% from Q2 to Q3, “cloud security issues,” grow about 10% from Q2 to Q3 and 434% from Q1 to Q3, and “web vulnerabilities,” grow by 18% from Q2 to Q3 and 459% from Q1 to Q3.

JSON Web Tokens (JWTs) are becoming more ubiquitous. Although they’ve been around for years, more organizations are complying with modern

security standards, particularly in Europe post-GDPR. For a better understanding of JWTs check out this article.

The growth in interest in cloud security relates to what Matt Quinn, COO at TIBCO calls the second major cloud migration. “There’s no cutting corners with this [cloud security]. If you don’t do the investments in the right place, in areas like CloudOps and DevOps, you don’t change your development practices.”

“People can still screw up,’’ Quinn adds. “But ultimately, security is something that we know what we have to do. Sometimes, we don’t do it. But I think everyone has a good idea and understanding of what good practices are. The early majority are probably still rediscovering some of those. And I think there are still some pockets of resistance to the cloud because of security-based issues.”

In other words, don’t cut corners and make sure you are adopting industry standards. Hackers aren’t slowing down, and neither should you.

Full Stack Developers, Frameworks and Popular Tutorials

The term “full stack” refers to both frontend and backend development. If someone is a “full-stack developer,” it means they have the skills and proficiency in both aspects of development.

This quarter, we saw growth in topic tags “full stack development”, which grew by over 97% from Q2 to Q3 and 547% from Q1 to Q3, “asp.net tutorials”, which grew by about 85% from Q2 to Q3; 2395% Q1 to Q3, and “python frameworks” , which grew by 137% from Q2 to Q3 and about 950% from Q1 to Q3.

This quarter, we saw growth in topic tags “full stack development”, which grew by over 97% from Q2 to Q3 and 547% from Q1 to Q3, “asp.net tutorials”, which grew by about 85% from Q2 to Q3; 2395% Q1 to Q3, and “python frameworks” , which grew by 137% from Q2 to Q3 and about 950% from Q1 to Q3.

ASP.NET is an open-source, cross-platform framework used for building web apps in C#. Many companies and developers are attracted to its user-friendly nature and are becoming overwhelmingly popular.

We talked with Microsoft MVP and tech leader, Gunnar Peipman (@gpeipman) about ASP.NET, why it’s so popular, and where he sees it moving into 2020. Peipman identified four key features about the language that made it stand out from other frameworks: its cross-platform abilities, lightweight and easy startup, abundant libraries, and high performance.

These features have led to increased interest in the framework that has led to more users.

“New users are coming from other ASP.NET [platforms] and so I think this transition will continue over the next few years. Many companies just cannot transition their current systems,” Peipman explains. Transitioning your codebase is no easy task. “So, I think over the next few years, ASP.NET development will be a hot topic.”

In addition to tutorials on ASP.NET, we also saw a huge jump in readership of tutorials on various Python frameworks. We spoke with Python developer and writer, Mike Driscoll, (@driscollis) about where Python for enterprise development is headed as 2019 comes to a close.

Driscoll highlighted why Python is popular amongst full-stack developers:

“The nice thing about Python web development is that it works on all PCs, across all platforms, so it’ll work on Windows, Mac, and Linux. And if you design it correctly, it’ll also work on most tablets and phones too. So, you’ve basically got a universal language, so to speak. That’s why it’s growing so much.”

Working Smarter, Not Harder

As 2019 draws to a close, developers want to make sure they have the right tools and processes in place to be successful through Q4.

One similarity between each of these topics and their related tags is tools. Developers want to find the best tools and frameworks to solve their problems — with as little startup time possible. Having the right tools for the job is critical, and that desire dominated Q3 readership results.

As we count down the final days of 2019, it will be interesting to see which trends carry over into 2020.

About the author:

Lindsay is a Content Coordinator at Devada. She works closely with contributors to DZone, a website for software developers and IT professionals to learn and share their knowledge. Editing and reviewing submissions to the site, she specializes in content related to Java, IoT, and software security.

Categories
Tips

10 Tips to help you build strong coding skills

Best practices for learning how to code

So, you’ve finished your first introductory coding course, but you don’t know what to do next. We’ve created this article to give you tips on what you should do, and what you shouldn’t do when you’re taking your first steps as a developer and trying to build strong coding skills.
Although this was originally designed for applicants preparing for the Code Chrysalis Immersive technical interview, it has useful information for anyone looking to take their next steps as a new developer!
Let’s get right into it. Here’s some advice to help you take your skills to the next level.

Tip 1: Be careful about coding challenge websites

Ignore the top scorers…for now. Oftentimes, the code solutions that get the top scores on websites like CodeWars and Coderbyte are not examples of good code. This is because the websites are games, and part of the game for developers is to see how short they can get their solutions.
While these solutions work, they are not necessarily what would be recommended in a professional setting. Why? That leads us to our next piece of advice.

Tip 2: Write code for people

We write code for people, and it is run by computers. Not the other way around. Short code does not always mean clear code.
If you take the code from coding challenge sites, you run the risk of interacting without fully understanding the code in question. If you’re new to coding, these often involve techniques or concepts that are a few levels above what you should be focusing on.
Comprehension is key.

Tip 3: Passing tests are useless if you do not know why

It can be easy to throw a bunch of ideas against a wall and see what sticks. But it would be even better if you knew why it sticks. For beginners and experienced devs alike, it is key to also understand the why’s.
If you do not understand “why” for basic topics, how will you understand “why” for advanced topics?

Tip 4: Be careful of copy-pasting code from StackOverflow or blogs

Make sure you know why something works (or does not work). Invest the time to understand the fundamentals. Another problem with StackOverflow – or blogs – is that they can be wrong, whether intentional or not. They can also be outdated.

Stay vigilant about the material or answers you are looking at.

Tip 5: Familiarize yourself with reading documentation

Reading documentation (on-line manuals) is an important skill. Frankly, it is a skill that many working developers lack, so building up this skill early will set you apart.
You can find JavaScript documentation on the Mozilla Developer Network. It can be intimidating to read and you will not be able to understand everything you read for quite a while. But that’s ok.

If you can learn just one new thing every time you try to read the documentation, you are making solid progress.

Tip 6: Learn to do things without native methods first

If you are using .forEach and .map for everything, I suggest you try solving problems without using any of those.
We want to be able to understand how these built-in methods work before using them. If you do not know how to do things without them, you will always be coding half-blind.

Make sure you have 20/20 vision. Your career will thank you for it.

Tip 7: Check your assumptions by running and checking your code often

Do not be afraid to use console.log to print things out.
Always double check.
Be aware of what data you have access to at any given point in your code.

Make sure that you test your assumptions — are you sure that variable is a function? A string? A number?

Sometimes, what you think is a 2 is instead a ‘2’ and that can make a big difference in code. Use  console.log and also typeof to double-check that what you think is true.

This will also protect you from bugs. It can be frustrating to write a bunch of code, only to run it at the end and realize that there is something wrong. Protect yourself from making these mistakes before you reach the end.

Tip 8: Error messages are your friends

When you see an error message appear, this is actually something to welcome.

Familiarize yourself with common error messages and what they mean — do not ignore them. Learn to read them so you can use them to your advantage.

Error messages will also give you a line number in your code where the error originated from. If it isn’t immediately clear what the error message means, Google it!

As you get more advanced, you will come across silent errors. The evil twin of error messages. These are situations where something is not working, but you do not have a handy error message telling you where it is going wrong. They are the worst.

So, next time you see an error message pop up, give them a big hug and thank you. And then listen to them.

We’ve listed some common error messages for beginner coders below:

Uncaught ReferenceError: ______is not defined>

This usually happens because a variable or function name is missing; the JavaScript engine is not sure what you are referring to.

Are you sure you spelled everything correctly? Are all of your variables declared? Did you copy/paste code? (Please don’t copy-paste code without understanding it)

Uncaught SyntaxError: Function statements require a function name
Uncaught SyntaxError: Unexpected identifier.

Did you forget a closing or opening bracket or parenthesis? That is usually the case.

Uncaught TypeError: Cannot read property>

This often happens when you are trying to read a property or call a method on an undefined object. Are you using a method that does not exist on an object? Is your object defined?

For more information, check out this helpful article.

Tip 9: Go slow and review often

It feels a little counter-intuitive, right?

Review concepts that you think you are already familiar with often. You will probably always come across something new. Try seeing if you can understand more MDN documentation each time.

You are learning the fundamental building blocks that will support your career. Spend time making sure this foundation is as strong as possible. Do not be ashamed of going back to review strings and numbers, even if you think you already know how to use them. There is always more to learn before you build strong coding skills.

So while React can seem really attractive, if you do not have a good grasp of the basics, it will be a struggle and waste of effort.

Tip 10: Make it work, then make it pretty

Do not stress about making your code look elegant. First, get it working. Then, we can go back and clean it up.

Working and ugly is better than broken and…still broken!

About the author:

Yan-Headshot

===

Yan Fan is Code Chrysalis’ CTO and Co-Founder. Born in China and raised in Seattle, she graduated from Dartmouth College with degrees in Economics and Arabic. After graduation, Yan worked at Bunge Global Agribusiness, a commodities trading house. After a career change into tech, Yan worked as a software engineer at Ayasdi, a leading Silicon Valley machine learning startup, and as an instructor for Hack Reactor’s prep course.

Code Chrysalis is Yan’s second coding bootcamp–with Hack Reactor, she co-founded and served as CTO of a coding school in Jordan helping refugees in 2016.

 

Categories
Business Community Tips

Job positions for Video Game designers

 

game design job positions

So, you know how to get into game designing, and you know that education and training standards you need to succeed – now all you need to do is get ahead of everyone else and begin to make headway as a game designer.

Once you have achieved the level of education or training needed for a career in game design, you can plan for your future in the industry. This begins with determining your career path, gaining experience, and creating your first game.

Determine a Career Path

Even within the specialty, there are many different types of game designers. Furthermore, game designers have diverse roles within their various positions which may not be obvious. This is why it is important for aspiring game design professionals to fully consider the type of game career they intend to pursue.

Senior Level Designer

This position is responsible for outlining the level objectives and game flow within a set and then is required to create the documentation for each level. A senior level designer should be able to create, position, and fine-tune game play elements and AI components.

Level Designer

This is a position subordinate to a senior level designer. Level designers will typically use the provided design documentation, including all mechanics, any guidelines, and the mission outlines to create and implement each of the game’s levels.

Lead Animator

Animators work in close collaboration with artists, programmers, and designers to create each aspect of the characters used in the game.

Gain Experience

Getting an entry level job with a large game studio can be a difficult proposition. Since most employers require some game design experience for most jobs, new game designers have to find creative ways to gain relevant experience.

Game Designer Internships

Some companies offer internships or co-op positions for beginner designers.

Go Small and Indie

Small businesses on a budget are often willing to hire game programmers or artists with little practical experience.

Coding for a Cause

There are some charities that require coding and game design. You can sign up and start writing code while gaining real-world experience.

Develop a Game

Game designers can create a buzz, get experience, and gain a competitive edge when they design and publish their own game. Utilise free programs to create a simple, engaging and interactive mobile game. Publish it for sale on the app marketplace. Then begin working on something more complex. Each game will add value to your portfolio and most importantly, it will count as design experience.

Game design is an exciting and fast-growing field. However, it is one of the most difficult to break into. To do so you need a clear direction and understanding of the industry, education and training requirements, and a strategy to succeed.