Skip to main content

Software engineering today

Today the meaning of being a coder or coding, in general, has changed in the job market. Seeing some engineers out there who have it in their head that all they need to do is learn Python, bits of variables and do-while loops, and they could apply for jobs. It just doesn't work like that, I've known some engineers who haven't written a basic loop code for years now. People get an image of coding in their minds where there is a guy at a desk with a dark-themed terminal on the screen where he types on the keyboard going through the huge sums of code lines, along with the typing sounds in their heads. The beginner coders have this image of them going through lines of codes at their soon-to-be jobs and thus are engrossed with knowing all the possible statements of for loops and if-else statements in python or swift, or about defining classes in other languages. None of this fascination of the assuming mind helps in the real world.


Over the years of the tech industry specifically in IT giants, the role of software engineering has changed quite a bit with actual coding time taking a backseat in the job role. Though an important skill to have, and the better you are at it the merrier, there are still many things which we need for the role of a software engineer.  In the 'classical' times of coding people used to write codes and then abstract upon that into newer languages, but nowadays people aren't really doing the miscellaneous tasks and jumping to the use of microservices, platforms, tools and cloud infrastructure and amalgamating all these together through APIs and frameworks.

Lessons in coding

Taking my past into consideration, I brushed up on coding through small and disparate jobs, working and volunteering alongside my studies. I thought that the better I became at coding the better my chances when I transition into the job market. To begin with, that was a very uphill task as there was always more to learn and coding was pretty much a skill which was easy to learn but still, I haven't mastered considering the focus and time it requires first building and then cleaning up the code. The shift to the professional work culture showed me how on a larger scale i.e. greater than the individual level things aren't as they seem from the outside. The task isn't to get the best product/ service out there or even such a thing is possible, it's to deliver. Even as a team whose coding was brilliant making a to-do list, services for a blog or even an online ERP from the scratch, the most common issue was there already were many sites or services of the same kind before you. You brought nothing new to the table unless you were only servicing a local market which was long away from the use of mainstream services.

Building something which is state-of-the-art of technology that people would want to write about. If we are relying solely on our skills as programmers using data structures and algorithms we are not going to get that far, thinking about it most of the algorithms these days are not even handwritten anymore for many of the services where data is involved. They're backed by machine learning trained on millions of data points, which leads to no need of supplying with our own algorithms anymore. Just tuning models and gathering the data, that's what software engineers have come to do in these times.

Looking back now the UX wasn't as good as the small techs didn't have the resources to get it to the best possible artistry, the infrastructure wasn't really distributed or scalable and fast and optimum performance wasn't really something on the agenda. The service just had to be good enough that it could be brought to the customer who didn't want to jump to the mainstream products. It could be due to the lack of knowledge of it, or the cost, or to keep being locked with one service provider the reason for this could be any.

Profile= Coding + More

Nowadays it takes more than just code to ship a product. Gone are the early days where one could basically be working on the text and images on a site as a job. It is a no-brainer in today's digital market that most top apps have so much functionality like video streaming, IM, email, marketing services and working at the back-end or even in the systems is newer tech like blockchain, AR and image recognition. These also have a great UI that works on multiple systems mobile and desktop with different analytics built into them. Logging, experiment testing and replication and redundancy at scale with high performance across servers is all beyond a single person's ability to handle by themselves. So, this is where other proficiencies come in that software engineers have to do as a regular task other than code and that is to understand the other services and platforms that help them do their jobs like AWS, Google cloud, frameworks and open source libraries.

Most time of developers' goes into understanding about these products and services and the documentation to bring about these web services and cloud-managed backends together. The coding part helps in glue all these pieces together in the end and of course, nobody wants to code ground up for products that are already available in the market as open source and are extensively community-backed, which could save a single or small team of coders be a lot more efficient and spend their time rather optimising the pre-made code to their product/ service. I get that all this seems confusing but the story-cut-short role of a software engineer is not to start from anew but rather its to solve problems, which doesn't mean necessarily to code.

Engineering today

It's not been more than a couple of decades that people didn't know how to make payments online using credit cards then came PayPal and other payment services that made online payments easier. If we take a birds-eye view being a software engineer is very similar to more conventional engineering roles -- crossing a river with a bridge would demand a civil engineer while finding a way to reach out to others using the internet and an OS-running binary machine would entail the help of a software engineer. An engineer can be defined as a person who designs, builds, or maintains engines, machines or structures. Just nowadays the structural view is on little macro-scale than how to code.

Coding is now supported through completion code editors, tech community with tutorials for finding an answer to basic problems and packaged web frameworks that can help deploy websites in a few steps. It is now almost everyone's cup of tea to launch basic websites and to find any kind of challenge you have to go further. I have spent so much of my time thinking over new ideas and then trying to get them to work and later finding other services to which I could have outsourced all the work. Netflix, for example (though at a very big scale), is a business based on web video streaming which rather than building the code ground up uses Amazon's Cloudfront for the most part. Likewise, taking a new eCommerce business as an example after completing the product development and logistics part, instead of coding, we could just set up a professional website for it through website generation services like Wix, Squarespace then set up email marketing campaigns through email services and then add some payment methods and similarly can market using ads on social networks. Nearly no coding is required through all this but we still need to be technically sound to make all these pieces work together. Although we could still use some code to optimize this, other services could be added as discussed before like analytics etc.

I have found that 'coding' like any other defined term that we as individuals use, to keep track of a field or a subject, has and is always in the process of incremental change. My early journey through the tech world as a student, problem solver and later roles in technology have eventually made me backtrack and re-analyze subjects and software engineering is one whose roles have changed dramatically as the problems keep evolving. From being a solo coder to a team player, and figuring out that coding is just one part out of a cluster of things one does as an engineer and then, going through the evolution of products and services as problem-solving tools giving rise to novel structures for future growth, long ways to go.

Comments

Popular posts from this blog

New pricing model of ChatGPT Pro, and its effect.

As someone who has been using the OpenAI API to power my chatbot, I was excited to hear about the release of ChatGPT Pro. The new model promised to be even more powerful and accurate than the previous version, and I couldn't wait to try it out. But when I looked into the pricing for ChatGPT Pro, I have to admit, I was a bit disappointed. The cost to access the new model was significantly higher than the previous version, and I wasn't sure if it was worth the investment. On one hand, I could see the value in using the more advanced model. ChatGPT Pro is reportedly able to handle more complex and nuanced conversations, and the improved accuracy could help my chatbot better understand and respond to users. On the other hand, I also had to consider the cost. As a small business owner, I have a limited budget for my chatbot, and the increased cost of ChatGPT Pro could put a strain on that budget. In the end, I decided to give ChatGPT Pro a try. I found the improvement in the...

Driverless Cars (A perspective)

Driverless cars have come in vogue since Elon Musk came to helm at Tesla about a decade ago. He brought with him the knowledge and ambition of the information and communication technology industry into an old and conventional industry such as car manufacturing. Since the Tesla's growth through these years, driverless technology has taken everyone by storm and multiple people from George Hotz (a jailbreaker once) to corporates such as Ford, at the forefront of achieving  this once difficult dream. The advantages though are ease of access, and lesser possible collisions and disadvantages being humongous costs of transition, and takes away the thrill/ driver jobs. Source:  indiatimes.in     First, discussing the pros of this new technology, companies like ZooX (my cousin works here) and Tesla have come a long way in designing cars, which are mostly autonomous and don't need a regular access to servers for basic navigation through the present road infrastructure. This he...