coding abilities – Devstyler.io https://devstyler.io News for developers from tech to lifestyle Tue, 27 Jul 2021 09:28:25 +0000 en-US hourly 1 https://wordpress.org/?v=6.5.5 The Uber-Importance of Software Documentation https://devstyler.io/blog/2021/07/27/the-uber-importance-of-software-documentation/ Tue, 27 Jul 2021 09:28:25 +0000 https://devstyler.io/?p=61788 ...]]> Which is more important, software or the documentation that makes that software more usable and useful? Framed that way, it would be reasonable to assume both creators should make roughly the same, given similar seniority/geography/etc. Reasonable, but incorrect. Software developers may not make the fabled $3 million a year but, on balance, they tend to make a lot more than the folks writing docs that make their code approachable.

It’s time that we changed this—and not out of some hazy notion of fairness. No, you’re going to want to pay your docs writers more once you realize just how much value they create and unlock.

Panning for gold

Matt Klein knows something about the value of great developers. He’s the founder of the popular Envoy project and runs a team of developers at Lyft. Perhaps for those same reasons, though, he places an even greater premium on great documentarians or docs writers:

“Finding a good technical writer is about 100x more difficult than finding a good engineer. I think they should be paid more.”

Chef Product Manager Tim Smith details why: “It really doesn’t matter what you build if no one can figure out how to use it.” Developers agree, and so routinely rank documentation as their top task to help them be productive. Docs says Human Security’s Bethann Noble, “are a fundamental part of the product.” You don’t have good docs, you shouldn’t ship.

Even so, when GitHub polled developers on how open source projects do with documentation, 93% complained about incomplete or confusing documentation. The situation may be better for proprietary software because people are getting paid to write those docs. But the problem remains: They’re likely not getting paid enough.

According to Indeed’s salary data, the average base salary for a US-based software engineer is roughly $104,000. That’s pretty close to what a U.S.-based docs professional makes, according to the Write the Docs Salary Survey 2020 data. The top quartile of software developers makes a lot more than $104,000. But what about the top 25% of docs writers? Nope.

In a conversation with Datastax Chief Strategy Officer Sam Ramji, Google Technical Writer Patricia Boswell argues that great code needs a great story to frame it, to make it accessible to even the most technical audiences:

“No matter how technical a topic is, the framing is always the story. You can make something more approachable by framing it as a story. Code used to be scarce and worth the bother to decipher. Now code is “abundant,” and the scarcity is in articulating a story compelling enough that someone stops what they already know and what they’re already doing to come hang out with you and check out your stuff and spend enough time developing a little bit of competence to use it and become a member of your community.”

That requires good writing. It requires good docs.

Docs become even more important when the docs, not code, are the primary interface (like, for example, a developer engaging the underlying code through an API). But a great docs writer, notes Boswell, isn’t the

“kind of person who only wants to describe how [the software] works.” Instead, they’re “somebody who describes how it is used. And in order to do that, we tie all of these vision pieces together. So we create this narrative that ties the market vision and the functional vision and the user experience. We’re partnering with UX to make sure that we’re documenting the experience, and then it just flows from there.”

If that capability sounds valuable, that’s because it is. Not only are great docs writers helping others to understand why they should use software (by crafting that overarching story or narrative), but they’re helping the would-be user to situate themselves in how they’ll use the software within that overarching narrative. There’s a tactical element to all of this, but it’s a deeply strategic role.

It’s also a role that’s hard to source, according to Klein. This means, if you want a great documentarian, you need to be prepared to pay up. Yes, perhaps even more than you pay your best developers. Without equally good docs writers, relatively few people will ever know you even employ great software engineers.

]]>
How is Coding Important for Being a Computer Hacker https://devstyler.io/blog/2021/07/07/how-is-coding-important-for-being-a-computer-hacker/ Wed, 07 Jul 2021 12:22:17 +0000 https://devstyler.io/?p=58171 ...]]> Hackers are the face of cybercrime, globally cybercrime is a multi-billion dollar business. However, the money doesn’t just come from illegal activity. Many hackers can make a good living without having to break the law. An ethical hacker otherwise known as a white-hat hacker is someone that makes money by helping companies improve their security, actively hacking into the company and helping them fix the mistake that allowed them to hack into the company in the first place. One of the best things you can learn if you’re interested in hacking computers is how to code.  In this article, we outline why coding is important for being a good hacker.

Knowing how to code isn’t a prerequisite for learning how to hack computers. If you’re interested in learning you don’t need to learn how to code before you can get started, however, there are many situations where having a solid understanding of coding is useful.

One reason you need to learn how to code as a hacker is so you can modify scripts that you will use to hack into different systems. Especially as a beginner you’re mostly going to be using automated tools like Nmap, Metasploit, burp suite or programming scripts that were created by other people. This is because most of the new hackers don’t have an in-depth understanding of how the attacks work and are unable to write their own computer scripts to automate the attacks themselves. Therefore, having a good enough understanding of coding to the point that you can understand and edit other people’s computer scripts is very useful for a beginner. One source if you’re looking for pre-made scripts that you can use to get started hacking computers is exploit-DB. This is a database maintained by offensive security that has a bunch of pre-made scripts for hacking.

The second reason you want to learn how to code is so that you can create your own custom scripts. Generally, this will be more useful once you have more experience hacking computers because you will need to understand exactly what you need to tell the computer to do.

Once you master this knowledge it’s useful to know how to create your own scripts that do exactly what you need and want them to do. If you’re interested in learning this, there are a lot of good courses and academies that can get you started writing scripts in many different programming languages on hacking computers. In addition to this, you can also search on youtube to see other walkthroughs of people writing their own scripts.

Thirdly, understanding programming (the creation of full computer programs) is useful in understanding different types of cyberattacks. So attacks like SQL injections, cross-site scripting or command line injection all use lines of code as their attack vector. If you have a good understanding of languages like Javascript, SQL, Powershell and Bash it can be very useful.

]]>
Is Life as a Freelance Software Developer for you? https://devstyler.io/blog/2021/06/07/is-life-as-a-freelance-software-developer-for-you/ Mon, 07 Jun 2021 12:53:47 +0000 https://devstyler.io/?p=53878 ...]]> Freelance development is a career path that offers a lot of time flexibility, independence and room for self-driven professional growth. However, there is a flip side, and it comes in the form of uncertainty, financial vulnerability and a ton of hard work. 

A freelance software developer is a programmer who works on an ad hoc basis, rather than as a full-time employee exclusively bound to a single company. Freelance developers often work for multiple clients at once, but some might choose to work with one company at a time on a contractual basis. Most freelancers are hired to complete speciality application projects that require unique, higher-level coding skills.

Now we’ll take a closer look at these two sides of the freelance software developer’s job, and the factors you must consider if you’re looking to pursue a career like this.

Advantages of freelance software development

The main advantage of working as a freelance software developer is the flexibility that comes with the role. You get to decide when you work, what jobs you want to take and how you get those jobs done. Another thing to note is that freelancers are under no obligation to take on the entire extent of a software project’s workload. They often have the freedom to choose the particular projects they are most comfortable with or interested in, rather than being told exactly what code to write.

Downsides of becoming a freelance developer

Working as a freelance software developer is not always ideal. You must constantly be on the lookout for new projects to take on when your current contracts expire. Sometimes, contracts can also terminate for any number of unforeseen reasons, making it essential to have a backup plan. This requires you to be adept not only at coding but also at branding yourself, marketing your expertise and making business connections.

Another issue is that freelance developers must essentially know how to run their own business. While full-time employees typically enjoy the support of human resources and finance departments, freelancers will need to manage their own self-employment taxes, oversee the process of invoicing clients, and chase down those who don’t pay.

Should you become a freelance software developer?

If you think you have the organizational skills and know-how to confidently work as a freelance developer, there are a few steps to take before getting started. Unlike a traditional, full-time position, there are some interesting points that freelance developers face. Essentially, overcoming these challenges requires paying attention to the skills you cultivate and the way you spend your precious time. Here are a few strategies to consider out of the starting block.

Specialize your language skills

Specializing in a specific type of programmings, such as web development or database development, will make it much easier to advertise your services and land a freelance position. Try learning one or two niche languages that you can demonstrate proficiency in when marketing yourself. It also allows you to establish yourself as an expert in certain fields.

For instance, few companies struggle to hire full-time developers who can code in languages like Python, Java and C. However, companies often need help working with more obscure languages like Erlang and COBOL. If you know one of these languages, you’ll be in a stronger position to find freelance work.

Understand development trends

Investing yourself in an upcoming field like blockchain or AI is another way to set yourself apart from the pack. Companies are hesitant to invest in full-time roles for development fields that may, or may not, turn out to be fads.

For example, if you know how to program blockchain mechanisms circa 2016 when the blockchain bubble was filling up, you would have had an incredibly easy time selling yourself to many companies. Today, AI developers seem to be in high demand — although it’s unclear exactly how long that will remain true.

Contribute to open source

If you’re looking to build a name for yourself and establish a portfolio that shows off your coding skills, contributing to open source projects — or creating an open-source tool of your own — is a great way to do so.

For the best results, contribute to open source within the specific niche or ecosystem you want to work in. For instance, if you’re trying to land a freelance gig working with applications that are deployed on Kubernetes, contribute projects to the open-source community surrounding Kubernetes.

Go beyond code

Some companies are looking to recruit developers that do more than just write code. Whether they explicitly state it or not, they may also want help designing applications, planning software management strategies or concepting features that will keep end-users happy.

Overall, it might be helpful to market yourself not just as a developer, but as a technology consultant. If you’re up to it, make it clear that you offer big-picture guidance in addition to your development and coding abilities.

]]>