The Four Stages of a Developer
Development is more than just writing code
Technology is changing so fast that it's becoming hard to keep track of what's new or where it's going. It's typical for a developer to invest a few weeks learning a framework, a productivity tool or a new language, only to be told to her annoyance that there's something better and shinier that has came out just two days ago. Often there's no clear-cut comparison to suggest that one choice of technology stack is better than another. Developer skill-sets, community support, open libraries, documentation, cost, and application requirements are some factors that influence that choice. The problem has become so acute that some developers spend days or even weeks researching and get indecisive. Wouldn't it be nice to have a place that introduces technology to beginners?
When I say "beginner" I don't mean in the sense of someone in college or just starting his career. You could have years of experience in one technology and still be a beginner in Data Science, Big Data, Virtual Reality, IoT or any of dozens of new technologies that are coming up. I've found from personal experience that often initiations are in the form of Getting Started Guides, Setup & Installation Guides or Hello World examples. This fails because it's telling folks how to use something rather than explaining what it is or why it's relevant.
This is exactly where Devopedia, hosted at Devopedia.org, fits in. I got the idea for Devopedia last December. It's tagline reads,
Devopedia is an open community platform for developers by developers to explain technology in a simple, clear and unopinionated way.
Although inspired partly by Wikipedia, and partly by StackOverflow and Quora, Devopedia is different because it fulfills a need that other platforms do not. To understand this, we need to recognize that developers don't start their journey by opening a text editor and writing their first lines of code. There are in fact many stages of a developer's journey.
Surveying the Landscape
When you're new to a technology, the primary goal must be to learn what it is and why it matters. What's the context in which this technology applies? What are the entities of the ecosystem with which this technology competes or cooperates? How does it build upon incumbent technologies, interfaces with them and complements them? In fact, these are questions relevant not just to engineers, but also project managers and business folks who want a simple and clear explanation of technology.
It's really at this stage that Devopedia stakes its claim. Because developers don't have time to read long Wikipedia articles, Devopedia imposes a strict word limit. Article summary can't exceed 150 words. This means a visitor can gather the gist of the article in under a minute. Answers in the Discussion section can't exceed 200 words. The entire article can't exceed 2000 words. To reduce cognitive load, the structure of each article is fixed and readers can choose to hide distracting hyperlinks. While Simple Wikipedia aims to avoid technical jargon, it doesn't limit article length.
Devopedia is really for introductory reading. While Wikipedia claims to capture "the sum total of human knowledge," Devopedia does not aim to replace existing platforms. Devopedia will often point the reader to other platforms on the web for further reading. Devopedia therefore complements what's already out there.
Like Wikipedia, Devopedia is an open platform. Anyone can login and become an author instantly. Content is not curated since we believe that authors will cooperate. Devopedia adopts three of Wikipedia's core content guidelines: neutral point of view, no original research, verifiability.
Gathering the Tools
This stage starts when the developer has sort of narrowed her choices and wants to try out a particular set of tools or tech stack. This is exactly when tutorials and developer guides help. Getting Started sections of documentation pages guide the developer to download and install the tools. Sample code is shown and explained. Developer tries it out and in the process learns how to use the tools.
Often this handholding is done by official documentation. Early adopters who had tried the tools and faced issues would have shared their tips on blogs. MOOC courses might also cover them at the start. StackOverflow Documentation (Beta) is also a place to learn how to set up the tools.
Building the Solution
When the developer has selected a particular tech stack and the tools that come with it, it's time to start building the solution. This has its own process: requirements, architecture, detailed design, writing tests, writing code, system testing, and so on. The point is that when the developer faces a particular problem where does she turn to? More often than not, it's StackOverflow.
StackOverflow is really good at giving answers to specific technical questions when the developer is already deep in the world of development. StackOverflow is not the place to get introduced to technology without getting lost in technical details.
It's at this stage that developers look for code that they can use. Code sharing sites are plenty: StackOverflow, GitHub, HackerEarth, Geeks For Geeks, Planet Source Code, Code Project, and more. In Devopedia, wherever sample code is used, it's more to illustrate a concept rather than to share and reuse. Such code follows MIT License, while article content is licensed under CC-BY-SA 4.0.
Sharing the Learnings
The next stage is to share the learnings with the community. Blogs are a common way to do this. Among the many blogging platforms are dev.to(), Hashnode, Code Project, CodeGeekz, Medium, and more. Developers may come across an interesting article somewhere and share it on other platforms such as Facebook, Twitter, or Hashnode. Developers may take up unanswered questions on StackOverflow or generate pull requests on GitHub with their contributions.
Then there are those developers who want to simplify technology for others. Devopedia is the place to do it. This is the stage when developers give back to the community by authoring Devopedia content.
About the Author
Arvind Padmanabhan graduated from the National University of Singapore with a master’s degree in electrical engineering. With fifteen years of experience, he has worked extensively on various wireless technologies including DECT, WCDMA, HSPA, WiMAX and LTE. He is passionate about training and is keen to build an R&D ecosystem and culture in India. He recently published a book on the history of digital technology: http://theinfinitebit.wordpress.com.