Security and Careers—Application Development

Becoming a programmer involves more than just making the decision to do so. Beyond deciding to commit your life to computer programming, you need to settle on which of the myriad programming languages you wish to learn first. If you happen to know a programming language at least well enough to get through an interview, you may be good to go. However, if you are not seeing job postings for the language you know, you are back to square one.

Picking the programming language you should start with is something like the proverbial needle in the haystack, except that this needle may be in a stack of needles. Some websites rank program languages in a variety of ways: most popular, most job openings, most requested training, and more. This ranking tends to shift around because, by and large, programming languages are transitional. New programming languages are emerging all of the time, some for generic programming and some for specific applications. For example, in 2021, a variety of new programming languages were introduced or made public. Table 15-1 lists the most popular of these new languages.

Table 15-1 Programming Languages New or Popular in 2021

PROGRAMMING LANGUAGEPURPOSE/USE
ElmThis language started out as a student’s thesis but has become a popular front-end development language globally. It is much like JavaScript and suitable for the creation of user interfaces. This is a functional programming language for building client-side frameworks without dealing with HTML and CSS.
GoA C-type language developed by Google as a core language. A low-level language for developers working in systems programming. It features many of the same features as C/C++, but with simpler syntax and a lower learning curve. It can also be used for creating web servers and more.
JuliaA high-level language used for computational science and numerical analysis that includes a large mathematical function library. Intended to resolve the limitations of Python and other computational languages and applications.
KotlinWidely used for developing Android apps, web applications, desktop applications, and server-side applications. Developed as a simpler alternative to Java. Used for Google’s applications and other websites, including Coursera, Pinterest, and PostMates.
TypeScriptA Microsoft open-source object-oriented framework designed to extend JavaScript. Simple to write and easy to use to maintain code. The compiler tests for discrepancies and filters out compile-time errors. An extensive toolkit helps to speed up application development.

New programming languages emerge, and existing programming languages are updated and improved, primarily to meet the demands of emerging technology. As the capability of the hardware and software evolves, languages that are not updated may not be able to meet the user’s current and future needs.

However, it is not enough to just know how to program; it is essential to know how to program securely. Secure programming, also known as defensive programming, is actually a discipline in which programmers work with an understanding of existing threats and their effect on the program under development currently and in the future. For example, a programmer who is fully aware of potential vulnerabilities, prepares a program to withstand injection attacks when validating input.

Common Programming Tasks

Programmers often work independently, but even so as a part of a team. The traits looked for in a programmer are that he or she must be reliable, dependable, self-motivated, and able to cope with the stress of inflexible deadlines. Occasionally, programmers must also interact with end users and stakeholders, which requires a degree of interpersonal skill.

Duties and Responsibilities

The duties and responsibilities of a programmer are far more than just writing code. Here is a sampling of the duties and responsibilities of programmers:

  • Analyze, discuss, and gain understanding of the expected objectives and outcome of a programming project.

  • Write, exercise, and debug programs during the development and testing phases of a project.

  • Apply appropriate safety measures, data validation, and verification to ensure the confidentiality, integrity, and availability of processed data.

  • Deliver high-quality, bug-free, functioning, and completely tested programming code on or before project deadlines.

  • Ensure any interfaces and interactions are included in the test plan and are error-free.

  • Analyze, install, and test upgrades to both internally and externally developed application programs.

  • Write and review program documentation including installation and operating procedures.

From this list, you can see that programmers are responsible for program design; writing programming language code; compiling (when necessary), developing, and executing a test plan; debugging; and mitigating bugs and errors. Programmers who are employed by a company work either in an office setting or remotely with occasional meetings at the office or online.

Reviewing Security Information

Regardless of the programming or scripting language a programming job requires, application security measures continue to evolve right along with malware and other modes of attack. It is extremely important that a programmer regularly reviews the latest available information on new modes of attack and newly discovered vulnerabilities. This information can be consolidated, such as the Common Vulnerabilities and Exposure (CVE) website (cve.org) and the Center for Strategic and International Studies (CSIS) website (csis.org) that keep an updated list of vulnerabilities and attacks, receptively. Several programming language publishers also provide alerts for vulnerabilities and exposures for their specific language.

Programming Training and Certification

It is easy to find job listings for programmers. The ads vary in the specifics of experience, programming language knowledge, application types, and industry knowledge. Programmers’ responsibilities generally do not vary much from ad to ad, but the required qualifications, certifications, and education can.

The range of qualifications employers request can confuse or discourage anyone seeking programming as a career. The potential applicants can be confused on just what level of knowledge, education, and training is required to get a job. Often employers list specific college degrees or certifications, or both. Whether or not a college degree is equal or better than an IT career certification is solely the decision of the employer. However, companies are realizing that on-the-job experience, even only a small amount, and the appropriate certification can have advantages over some degree programs. This is true primarily because college curricula are slow to change, certifications require passing an exam that is updated frequently to keep pace with technology, and certification prep courses and books focus solely on the certification skills and knowledge.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset