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
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.
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
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
Post a Comment