Tag: C

  • Languages and DevOps: To The Cloud!

    Languages and DevOps: To The Cloud!

    Cloud and DevOps are almost a match made in heaven. Cloud started truly gaining steam in the age of DevOps and Agile, and has adapted – or grown up in it – well, depending on your viewpoint. If not for the combined issues of data gravity and data (im)mobility, we might have gone even farther than we did into the cloudy world.

    While the breadth of possible cloud apps means a wide variety of languages is in use, Node rules this roost. Every conceivable language is used in cloud development – because, in the end, they’re just servers – but Node is the go-to language of today. The broad use and appeal of JavaScript make it an obvious choice for enabling full-stack development, and the pool of developers is larger than any other language today. Other languages are used, but not in the numbers that Node is. Python is the challenger, and a surprising number of PHP sites still exist, but forward-looking development aims at Node or Python. Considering the distance from the hardware, there is less call for C in cloud than there is in other areas of development, but it isn’t gone, since interfacing to the OS is also often done in C.

    Targeting cloud is not so much about language as it is DevOps tooling, though. All of the major Git companies have cloud-centric extensions (this is the core of GitOps) that raise the level of “fully automated.” Cloud environments, by their nature, provide APIs for infrastructure, and the Git vendors (and many, many others) have hooked into those APIs to make deployment an integrated part of DevOps at a level of detail that other environments (with the exception of containers) require a lot of work to match.

    The negative to cloud-centric development is lock-in, of course. Creating an entire DevOps toolchain and process that supports vendor X will not work directly with vendor Y. Tools can help with this issue, but the real solution is in our next installment – container development.

    The part of development that arguably benefits the most from cloud-centric development is testing. It is easier to spin up a test environment as-needed and spin it back down when testing is done – no need for a spare set of hardware or a stand-alone VM server; just redirect the DevOps ecosystem and spin it up, then account for data (scrubbing, copying, etc), and you’re off. Codify the steps for data, and you have a re-spinnable environment for test-on-demand.

    The part of cloud that is arguably the weakest is security. Let’s face it, far more of your infrastructure is publicly (or semi-publicly, if running in a VPC) exposed than in a data center. There are far more places to lock down, and a sometimes-bewildering number of options to secure. But the flexibility of pay-as-you-grow makes it an appealing option, and there are tools to help manage all those lockdown points. Just make sure that you’re not the weak point in the shared security model.

    You. Rock.

    Cloud makes a lot of things easier, and Node makes development of any step in the stack easier by using the same underlying language on the server that is used in browsers and in many mobile development platforms. Node “feels” more right for web development, at least because one connection, one call … even if it makes long-running processes require a bit more work.

    Whatever you choose, pay attention to how deeply invested in the cloud vendor’s proprietary interfaces you are, because, like all technical decisions, one day you or your replacement will have to get around those interfaces. And keep making the software the org needs.

  • Best of 2020: Cybersecurity: What Programming Language Is Better for Your Career?

    Best of 2020: Cybersecurity: What Programming Language Is Better for Your Career?

    As we close out 2020, we at devopsy.kinsta.cloud wanted to highlight the five most popular articles of the year. Following is the second in our series of the Best of 2020.

    As a novice developer, you may be thinking about learning a programming language and starting a fantastic career.

    In fact, this question on Reddit inspired the whole article:

     

    Source: Reddit.

    The thing is, programming languages represent certain philosophies of its authors and tailored to certain types of problems, i.e., there is no such thing as “the best programming language.”

    Source: Reddit.

    Every Tool Has Its Time and Place

    In this article, I describe major programming languages according to its popularity, usage, demand and ease of learning. 

    There is market demand and a potential salary range for each language. These are linked to specific personal goals and prior programming experience.

    What Questions Should You Ask Yourself Before Diving in?

    • What kind of projects do you want to work on? If career flexibility is a priority, then learning Python or C++ will allow you to work with different types of programming. If your passion is web development, learning JavaScript or PHP is a smart choice.
    • How much experience do you have? You won’t want to switch to an advanced programming language, such as Rust, if you don’t have previous programming experience. If you’re new to a language, you’ll want to start at a higher level and be intuitive.
    • What are your career goals? Do you want to become a freelancer, working for an existing company or work with a startup? Are you trying to be better in your current role?

     

     

    If you plan to get a job in a large technology company, learn the programming languages they use, e.g., NASA, Google and Facebook use Python.

    Many programming languages have similar syntax and qualities—so if you learn one of them, it will be easier for others. The more languages you know, the more flexibility you have in your career and development projects.

    In the list below, we will look at the best and most popular programming languages for many of the most common uses, including web development, mobile development, game development and more.

    Source: Reddit.

    Top Five Programming Languages to Start Your Career

    Java

    It is probably the best programming language if you are looking for a common language that will be useful in various situations. As for choosing a programming language to learn, there are many resources for people who are thinking about learning Java. Java was released in 1995, which makes it one of the oldest programming languages. It is used on a wide range of platforms and operating systems, including Microsoft Windows, macOS, Linux and Solaris. 

    That means there will always be jobs for Java developers, making it (perhaps) the best programming language to learn.

    Research shows that Java developers can expect to earn between $80,000 and $130,000 per year. If you are thinking about learning your first programming language, think about taking an online course, for example, CodeGym. This course, which contains 40 levels of game-play classes, will teach you all the basics you need to know to start programming in Java. It’s easy to follow—even if you don’t have programming experience—and it is worth checking out.

    It is also best used for back-end web development, mobile development and desktop applications.

    JavaScript

    This programming language works on several platforms. Therefore, it is ideal for websites that will be accessed through various devices and browsers. It is suitable for anyone who designs websites with effects, interactive features, animations and pop-ups—standard features on virtually any brand website these days. If you want to work in a creative environment and add more experience to the user, this is a coding language to learn.

    JavaScript is the number one language on the web. The growth of frameworks such as jQuery, Angular and React JS has made JavaScript even more popular.

    If you just can’t stay away from the internet, it’s better to learn JavaScript sooner than later. I consider this JavaScript Masterclass an excellent place to start. For cheaper alternatives see this list of free JavaScript courses.

    It is also best used for front-end and back-end web development

    Learning PHP

    PHP—another old language, first appeared on the stage of programming around the same time as Java in 1995. It is a general-purpose language widely used for web development from the early days of the web.

    Unlike other languages, which can be quite tricky to use with HTML, PHP can be built directly into the HTML code block. Start and finish instructions are used to enter and exit PHP, making it very easy to use. Although PHP is not as popular as Python or Java, it can be a suitable language to learn because of its simplicity. It is convenient for beginners and you can write your first scripts just a few hours after you start your PHP course.

    Again, the popularity and wide use of PHP means that work opportunities are relatively easy to find. An average PHP developer can expect to earn around $80,000 per year. However, there is potential to make much more as a freelancer.

    Take an advanced PHP course, which will teach you everything you need to know to find your first job as a programmer. It doesn’t matter if you’re studying your first language, or if you’re an experienced developer looking for the best programming language to add to your resume—PHP is a great choice!

    It is best used for back-end web development.

    Python

    Source: Reddit.

    Python is a useful step toward more advanced forms of programming languages. Python provides a high degree of website readability and is used by companies such as Reddit, Google and even NASA.

    It is seen as entry-level programming that does not require too much prior knowledge. It may be ideal for relatively new professionals to help small businesses that want to expand their presence on the internet without having to resort to advanced professionals. Python is a relatively simple programming language that is very easy to pick up if you already have programming experience. That makes it one of the best to learn if you are already working as a developer and want to increase your resume quickly.

    The code on Python is designed to be readable. It uses a lot of white spaces, which makes it a pretty easy language to learn while you’re studying it.

    One of the most useful Python’s features is its compatibility with data analysis systems and scientific applications. It is a popular language in scientific communities and is often used by researchers to write their programs.

    An average Python developer can expect to earn about $100,000 per year. However, there is little room for wage growth.

    If you think Python is the best programming language to further your career, consider enrolling in a BitDegree course. The Python Basics Course includes everything you need to know to start writing programs on Python and contains less than four hours of lecture material.

    It is best used for back-end web development, desktop applications, and data analysis.

    C#

    C# is another object-oriented, general-purpose language based on C. It is considered a suitable programming language for building applications native to Microsoft platforms. Microsoft initially developed it as part of its .NET framework for building Windows applications. C# uses a syntax similar to other languages such as C++. Therefore, it is easy to pick it up if you come from a different C family language. 

    C# is not only a suitable language for developing Microsoft applications, but also a language used by mobile device developers to build cross-platform applications on the Xamarin platform. Besides, anyone interested in VR development should think about learning C# as it is the recommended language for building 3D and 2D video games using the popular Unity game engine, which produces one-third of the best games on the market.

    If mobile application development or virtual reality is your business, consider learning C#. Many mobile device developers use C# to create cross-platform applications on the Xamarin platform. Although it is not the most convenient programming language for beginners. 

    If you are interested in any of the above areas, please see the section “Learning the code when making games – Udemy’s Complete Unity Developer in C#.” I see that more than 200,000 students have enrolled in this course, which indicates its popularity.

    It is best used for mobile and game development.

    What Are the Best Programming Languages to Learn?

     

    Source: Reddit.

    As was mentioned at the beginning, there is no best programming language to learn. The best language for you will depend on your experience, your current knowledge and reasons to learn a new language. 

    While there are many options, you should be able to narrow down your language choice by what you want to learn from it. 

    Remember to consider the following:

    • Programming experience, because some languages, such as Python and Java, are more suitable for beginners who have never programmed before.
    • What you want to do with the language. Different languages are used for different things.
    • How much time do you have? Some languages are much more demanding than others.

    Make your choice based on your interests and the type of software development you want to get into. Here is a brief summary:

    • External web development: JavaScript.
    • Internal web development: JavaScript, Java, Python, PHP.
    • Mobile development: Java, C#.
    • Game development: C#.
    • Desktop applications: Java and Python.

    To Sum Up

    Programming and developer communities are evolving faster than ever.

    Various new programming languages are emerging that are suitable for different categories of developers (beginners and experts) as well as for other applications (web applications, mobile applications, game development, distributed systems, etc.).

    This list simply scratches the surface of existing programming languages. Still, the simple fact is that with the right coding skills, you will be perfectly prepared to offer valuable technical support and become an asset to any organization.

    — Dmitrii Borodin

  • Never Ignore the E-Factor

    Never Ignore the E-Factor

    When cloud burst upon the scene, we were treated to wild-eyed prognosticators telling us about the death of the traditional data center. This is a trend in IT that you would think we’d learn from, but we repeat every couple of years. 4GLs, no, XML, no…Were all going to end development, and yet here we are, with more lines of code and more programming languages in use. It just keeps happening.

    These all share two common failings. First, technology in use today may not be perfect, but it is getting the job done, so dumping it for the new silver bullet is an unlikely result either in the long or the short term. For example, we’re many iterations beyond the conception of the C programming language, and yet for some purposes it is still going strong–because it does the job.

    But that’s a little tangential to today’s discussion. Today, the other failing is where I’d like to focus. The E-Factor.

    Enterprises are a lot of things, but one of the things the successful ones are not is careless. Cloud use in the enterprise was always going to be both multi-cloud and hybrid. Why? Multi-cloud because sole supplier arrangements are riddled with possible issues, and hybrid because every enterprise has something they want to maintain sole control of or something that simply can’t be moved but they want to push toward newer environments.

    We were always going to have multiple choices, and successful enterprises were always going to use multiple of them. Containers facilitate this truth a lot. The ability to run containers pretty much anywhere makes them portable, as long as staff is familiar with the infrastructure of a given environment so they can support the container management system in that environment. But even without containers, a cloud portability solution was inevitable.

    There is a massive amount of automation going into IT right now, all for the good. Freeing up traditionally scarce IT hours to focus on more and better services is all to the positive. Inevitably, one or more of these automation tools will be hailed as “The End of X.” Ignore them, and keep rocking at your job. AIOps seems most likely to gather this type of following right now. It will offer a flood of new data and consolidated views of that data, but not much else in the near term. Even when decisions start to be automated, full-on automation based upon AIOps feedback still needs code to run against and infrastructure to run on, so no doom and gloom there.

    Apply the E-Factor to anything hailed as a silver bullet. If you’ve worked in the enterprise, you know there are so many variables in the datacenter that any silver bullet would have to be a splintering round, each splinter behaving in a completely different manner to address current IT needs. More options are always good, and I, for one, go after new tech because I’m non-stop curious. But it is indeed just more options for your IT needs. Use the ones that will help, ditch the ones that make things worse and ignore the cheering “This time we mean it!” crowd.

    — Don Macvittie