Photo by Museums Victoria on Unsplash
Imagine being on an airplane when the only doctor onboard suffers a heart attack, and you are unexpectedly chosen to perform an urgent surgery using the doctor’s equipment. Plot twist, you are not even a doctor, all you know is how to write some machine languages!.
At first, the task may seem impossible. However, what if I told you that you possess a secret tool with documented and recorded steps that you can follow to successfully complete the operation? Although not an easy task, you would proceed due to the urgency and the need to save lives.
The operation is a success, and everyone praises your work, calling you a ‘Doctor’.
Now, the question arises: Are you truly a doctor because of this single experience?
If you answered yes, this article is for you. If you answered no, continue reading to explore our shared perspectives.
During the Industrial Revolution, differing opinions emerged regarding progress. On one hand, goods became more affordable and accessible, medicine saw advancements, and the quality of life improved for the average person. On the other hand, overcrowded cities, pollution, environmental issues, and poor working conditions became prominent concerns. Automation led to job losses, and standardized production models such as Henry Ford’s, turned humans into repetitive task performers, stifling creativity and progress. However, new job opportunities also arose.
So, what does this historical context have to do with our main topic?
When it comes to the tech world, we’ve been undergoing some kind of revolution in recent years.
As a software developer in the early stages of my career, I experienced a steep learning curve due to the novelty of the technologies I encountered. Over time, I became familiar with the frameworks and stacks I worked with, such as Angular, specifically Angular 2+.
At that time, I was part of a team dedicated to learning new Angular and .Net Core technologies. While we had to navigate the syntax and concepts ourselves, we were fortunate to have exceptional mentors to guide us. However, when faced with obstacles during feature implementation, we often perceived them as limitations of the framework itself.
To my surprise, my mentors seemed capable of solving these blocking issues without in-depth knowledge of the framework. It was then that I realized that once you grasp the core fundamentals and important concepts, frameworks become mere tools and wrappers. JavaScript, for example, remains JavaScript regardless of the framework used.
This is not to undermine the usefulness of frameworks like React, Angular, and Vue, which have undoubtedly revolutionized front-end development
My concern lies in the confusion between relying on these tools and establishing a strong foundation in the industry. Just as assisting a sick person does not make one a doctor, using these tools does not automatically make one a developer. Overdependence on open-source code, forums, packages, intellisense, extensions, and auto-complete features has made my generation less creative and limited when it comes to solving complex problems. In my case, I focused more on Angular itself rather than understanding the underlying JavaScript flow, hindering my ability to think beyond the Angular framework
Photo by Glenn Carstens-Peters on Unsplash
Similar comparisons can be made between my mentors’ generation and the previous ones, when coding and deploying required physical papers. Developers of the past had no choice but to possess a deep understanding of every aspect of their work. However, as technology made development easier over time, many developers adapted in a less ideal way. For instance, when it comes to memory management, new developers using C# may not prioritize it due to the Garbage Collector handling it automatically, whereas in the past, developers working with languages like C, C++, or Objective-C had to learn and utilize memory management functions.
Fast forward to the present era, development is no longer limited to creating complex applications. It has become an integral part of our daily lives. Every business owner wants a website, every store owner needs a simple POS system, and so on. As a result, we’ve witnessed the rise of smart CMS platforms and dynamic website builders like WordPress and Shopify, designed for non-developers to build their websites with lower costs and reduced complexity.
This accessibility and simplification of development processes have made programming appear easier and more approachable. Programming languages have become more humanized, with user-friendly tools and online courses focusing on teaching specific libraries rather than core fundamentals. Additionally, the advent of AI language models like ChatGPT has further contributed to this trend.
Furthermore, our generation has unparalleled access to vast amounts of information through the internet. While this accessibility can be beneficial, it also presents challenges. Developers may find themselves overwhelmed by the abundance of information, leading to a focus on quick fixes and a tendency to copy and paste code without fully comprehending the underlying principles. Additionally, the rapid pace of technological advancements means that developers often have limited time to delve deeply into a specific context before new technologies emerge.
It is now possible to utilize the right tools and leverage ChatGPT to create a functional website, even without being a developer. However, the question remains: Does this ease of development truly make the process easier? Are developers becoming smarter as a result?
Photo by Andrew Neel on Unsplash
In my opinion, until the launch of ChatGPT, we were still in a phase where most developers were on an upward trajectory. However, going forward, I’m afraid that only a few will be able to sustain this upward trend, as some will fall on the declining wave where development becomes easier, faster and more superficial.
This observation is not a novel analysis. Speaking to those responsible for interviewing young developers would confirm this trend. By comparing what candidates of different generations knew at a certain age with what they know or expect now, we can observe a significant disparity.
I am not opposed to using these tools to facilitate faster, easier, more profitable, and cost-efficient development. However, it is crucial to recognize that these tools and bots should only serve as enhancers for developers. They should be viewed as additional hands that streamline the process rather than the sole weapon in a developer’s arsenal. What many young developers fail to realize until later in their careers is that development and programming encompass more than just writing code, executing functions, and designing interfaces. This is not a lifelong endeavor that will define their entire careers spanning 20, 30, or 40 years.
So, will ChatGPT actually replace developers? Or will it merely replace those developers who heavily rely on these tools as their primary weapon?
As long as a developer’s skills are honed in critical thinking, a unique mindset, comprehensive knowledge, and accumulated experience, they cannot be replaced by any bot. Developers who possess these qualities will always be prepared to embark on new journeys and adapt appropriately!
Resources:
Rahman, R. (2023, May 14). Unmasking the Illusion: Are We Building Smarter Developers or Shortcut Specialists? Medium. https://ramy-rahman.medium.com/unmasking-the-illusion-are-we-building-smarter-developers-or-shortcut-specialists-62e7dec25c5b
MixedMug
We firmly believe that the internet should be available and accessible to anyone, and are committed to providing a website that is accessible to the widest possible audience, regardless of circumstance and ability.
To fulfill this, we aim to adhere as strictly as possible to the World Wide Web Consortium’s (W3C) Web Content Accessibility Guidelines 2.1 (WCAG 2.1) at the AA level. These guidelines explain how to make web content accessible to people with a wide array of disabilities. Complying with those guidelines helps us ensure that the website is accessible to all people: blind people, people with motor impairments, visual impairment, cognitive disabilities, and more.
This website utilizes various technologies that are meant to make it as accessible as possible at all times. We utilize an accessibility interface that allows persons with specific disabilities to adjust the website’s UI (user interface) and design it to their personal needs.
Additionally, the website utilizes an AI-based application that runs in the background and optimizes its accessibility level constantly. This application remediates the website’s HTML, adapts Its functionality and behavior for screen-readers used by the blind users, and for keyboard functions used by individuals with motor impairments.
If you’ve found a malfunction or have ideas for improvement, we’ll be happy to hear from you. You can reach out to the website’s operators by using the following email
Our website implements the ARIA attributes (Accessible Rich Internet Applications) technique, alongside various different behavioral changes, to ensure blind users visiting with screen-readers are able to read, comprehend, and enjoy the website’s functions. As soon as a user with a screen-reader enters your site, they immediately receive a prompt to enter the Screen-Reader Profile so they can browse and operate your site effectively. Here’s how our website covers some of the most important screen-reader requirements, alongside console screenshots of code examples:
Screen-reader optimization: we run a background process that learns the website’s components from top to bottom, to ensure ongoing compliance even when updating the website. In this process, we provide screen-readers with meaningful data using the ARIA set of attributes. For example, we provide accurate form labels; descriptions for actionable icons (social media icons, search icons, cart icons, etc.); validation guidance for form inputs; element roles such as buttons, menus, modal dialogues (popups), and others. Additionally, the background process scans all of the website’s images and provides an accurate and meaningful image-object-recognition-based description as an ALT (alternate text) tag for images that are not described. It will also extract texts that are embedded within the image, using an OCR (optical character recognition) technology. To turn on screen-reader adjustments at any time, users need only to press the Alt+1 keyboard combination. Screen-reader users also get automatic announcements to turn the Screen-reader mode on as soon as they enter the website.
These adjustments are compatible with all popular screen readers, including JAWS and NVDA.
Keyboard navigation optimization: The background process also adjusts the website’s HTML, and adds various behaviors using JavaScript code to make the website operable by the keyboard. This includes the ability to navigate the website using the Tab and Shift+Tab keys, operate dropdowns with the arrow keys, close them with Esc, trigger buttons and links using the Enter key, navigate between radio and checkbox elements using the arrow keys, and fill them in with the Spacebar or Enter key.Additionally, keyboard users will find quick-navigation and content-skip menus, available at any time by clicking Alt+1, or as the first elements of the site while navigating with the keyboard. The background process also handles triggered popups by moving the keyboard focus towards them as soon as they appear, and not allow the focus drift outside of it.
Users can also use shortcuts such as “M” (menus), “H” (headings), “F” (forms), “B” (buttons), and “G” (graphics) to jump to specific elements.
We aim to support the widest array of browsers and assistive technologies as possible, so our users can choose the best fitting tools for them, with as few limitations as possible. Therefore, we have worked very hard to be able to support all major systems that comprise over 95% of the user market share including Google Chrome, Mozilla Firefox, Apple Safari, Opera and Microsoft Edge, JAWS and NVDA (screen readers), both for Windows and for MAC users.
Despite our very best efforts to allow anybody to adjust the website to their needs, there may still be pages or sections that are not fully accessible, are in the process of becoming accessible, or are lacking an adequate technological solution to make them accessible. Still, we are continually improving our accessibility, adding, updating and improving its options and features, and developing and adopting new technologies. All this is meant to reach the optimal level of accessibility, following technological advancements. For any assistance, please reach out to