Once upon a time, my young self opened Notepad, entered many characters, saved as an
.html file, opened it on Internet Explorer, and saw magic happen. It was life-changing.
When I was 15 years old, I got internet access at home. Dial-up, something around 40 kilobits per second. That's five KiB per second. That was what was available in my town at that time.
There was no Firefox. Google was barely a search engine (I'm from Brazil, we used another search "engine" at that time). There was only Internet Explorer and Netscape Navigator. And websites were always "best viewed on Internet Explorer", so it was what I used.
I then took a computer introduction course, one that taught "professional computer skills" like Windows 98 and Office 97. And the last book was "web". We barely got to start it and the course was over, but it intrigued me.
It was easy to create documents, style them, and – most importantly – add behavior to them.
To get started with web development, one needs only a text editor and a web browser. All popular operating systems come preinstalled with both. And you don't need to compile the code, just save and run.
The syntaxes involved are also not very cryptic.
<button style="background: purple" onclick="alert('Hello!')">
There's much more complexity to all of them, but it's undeniable that with a few concepts, and a few lines of code, anyone can create something already very robust, if compared to other platforms.
On a native platform, in general, you often need to download an IDE and a compiler, then write code for the behavior, use a visual editor for the visual interface, and write bindings between both. Then you need to compile and run.
The friendlier the entry point of a technology is, the more people feel comfortable experimenting with it. And if you can use that technology to build something that works, the experience is extremely satisfying.
The web is not just a set of rules to create, style, add behavior to, and link documents (although it started as one). It provides numerous tools so creators can produce a myriad of complex user experiences, from a website with comments, to an entire social network.
All of this involves an extensive list of APIs that allow web browsers to transform text files into rich experiences such as playing videos, making music, capturing the user's webcam, and much more.
Because of that, you can choose to become a specialist on many very different realms. For example, you can dedicate time to learn about accessibility, which is an increasingly important pillar of software development today.
One of the most fascinating things to me is how friendly, inclusive and supportive the web development community can be. There are a huge number of local meetups all over the world, great conferences that span across a number of topics.
One recent example was ReactJS Girls, a conference focused on React development that had only women speakers. Diversity has been a big problem for the software development industry, where 92% of surveyed developers on StackOverflow identify as men in 2019.
The conference idea was to showcase women talent, and it delivered. It was extremely fun, full of great, entertaining and informative talks, and met many great developers there, from all over the world.
You can watch all the talks at YLD's YouTube channel, and if you're into React development (or any component-based system), Jenn Creighton's The How and Why of Flexible React Components is a must-watch.
But, as in any group, there are Hundreds of Niche places where you can find angry, aggressive developers that prefer to insult rather than help. But let's not focus on them.
Find your passion. Find the passion inside your passion. And keep improving.
My specialties are software architecture and state management. I really enjoy an organized codebase that allows people to easily move around areas they're not familiar with and be able to easily add to them. I also really like to understand a product's business rules inside and out and apply them to the state management of the app in a robust way.
I love the web because it's welcoming, inclusive, and fun. And there's always something new to learn on it.
Wakati mmoja, kijana wangu mwenyewe alifungua Notepad, aliingiza herufi nyingi, alihifadhi kama faili ya.html, akaifungua kwenye Internet Explorer, na akaona uchawi unafanyika. Jambo hilo lilibadili maisha yangu. Nilipokuwa na umri wa miaka 15, nilipata mtandao nyumbani. Dial-up: karibu 40kbps Hiyo ni KiB tano kwa sekunde. Hiyo ndiyo iliyopatikana katika mji wangu wakati huo. Hakukuwa na Firefox. Google ilikuwa ni injini ya utafutaji tu (mimi ni kutoka Brazil, tulitumia "injini" nyingine ya utafutaji wakati huo). Kulikuwa tu Internet Explorer na Netscape Navigator. Na tovuti walikuwa daima "bora kutazamwa juu ya Internet Explorer", hivyo ilikuwa nini mimi kutumika. "Kama mwanafunzi wa kwanza wa kompyuta, nilijifunza ""Ujuzi wa Kompyuta wa Kitaalamu"" kama vile Windows 98 na Office 97." "Kifungu cha mwisho kilikuwa ""Web.""" Tulipata tu kuanza na kozi ilikuwa juu, lakini intrigued mimi. Ilikuwa rahisi kuunda nyaraka, style yao, na <unk> muhimu zaidi <unk> kuongeza tabia yao. Kuanza na maendeleo ya mtandao, mtu anahitaji tu mhariri wa maandishi na kivinjari cha wavuti. Mifumo yote maarufu ya uendeshaji kuja preinstalled na wote wawili. Na huna haja ya kukusanya kanuni, tu kuhifadhi na kukimbia. Syntax zinazohusika pia si siri sana. <button style="background: purple" onclick="alert('Hello! Kuna mengi zaidi ya utata kwa wote wao, lakini ni undeniable kwamba na dhana chache, na mistari michache ya code, mtu yeyote anaweza kujenga kitu tayari imara sana, kama ikilinganishwa na majukwaa mengine. Kwa kawaida, kwenye jukwaa la asili, mara nyingi unahitaji kupakua IDE na compiler, kisha uandike nambari kwa tabia, tumia mhariri wa kuona kwa interface ya kuona, na uandike vifungo kati ya zote mbili. Kisha unahitaji kukusanya na kukimbia. Kadiri teknolojia inavyoingia kwa urahisi, ndivyo watu wanavyojihisi vizuri kuijaribu. Na kama unaweza kutumia teknolojia hiyo kujenga kitu kinachofanya kazi, uzoefu ni kuridhisha sana. Mtandao si tu seti ya sheria ya kuunda, style, kuongeza tabia kwa, na kuunganisha nyaraka (ingawa ilianza kama moja). Inatoa zana nyingi ili waundaji waweze kutengeneza uzoefu mwingi wa mtumiaji tata, kutoka kwa wavuti na maoni, hadi mtandao mzima wa kijamii. Hii inajumuisha orodha kubwa ya API ambazo huruhusu vivinjari vya wavuti kubadilisha faili za maandishi kuwa uzoefu tajiri kama vile kucheza video, kutengeneza muziki, kukamata kamera ya wavuti ya mtumiaji, na mengi zaidi. Kwa sababu hiyo, unaweza kuchagua kuwa mtaalamu katika nyanja nyingi tofauti sana. Kwa mfano, unaweza kujitolea wakati wa kujifunza kuhusu upatikanaji, ambayo ni nguzo muhimu zaidi ya maendeleo ya programu leo. Moja ya mambo ya kuvutia zaidi kwangu ni jinsi ya kirafiki, kujumuisha na kuunga mkono jamii ya maendeleo ya wavuti inaweza kuwa. Kuna mikutano mingi ya kimataifa ya kimataifa, mikutano ya kimataifa, na mikutano ya kimataifa ambayo hufanyika katika maeneo mbalimbali. Mfano mmoja wa hivi karibuni ulikuwa ReactJS Wasichana, mkutano uliozingatia maendeleo ya React ambayo ilikuwa na wasemaji wa wanawake tu. Utamaduni wa programu umekuwa tatizo kubwa kwa sekta ya maendeleo ya programu, ambapo 92% ya watengenezaji waliohojiwa kwenye StackOverflow walijitambulisha kama wanaume mnamo 2019. Wazo la mkutano huo lilikuwa kuonyesha vipaji vya wanawake, na lilitimiza. Ilikuwa ni furaha kubwa, na ilikuwa na mazungumzo mengi ya kufurahisha na ya kuelimisha, na kukutana na watengenezaji wengi wa programu kutoka kote ulimwenguni. "Kama unajua, unaweza kuona makala hii kwenye YouTube, na kama wewe ni katika maendeleo ya React (au mfumo wowote msingi sehemu), Jenn Creighton ya ""Jinsi na kwa nini ya Flexible React Components"" ni lazima kuangalia." Lakini, kama katika kundi lolote, kuna Mamia ya Niche maeneo ambapo unaweza kupata hasira, watengenezaji wa fujo ambao wanapendelea kudhulumu badala ya kusaidia. Lakini tusikazie fikira mambo hayo. Tafuta shauku yako. Tafuta shauku ndani ya shauku yako. Na endelea kuboresha. Ufundi wangu ni usanifu wa programu na usimamizi wa serikali. Mimi kweli kufurahia codebase kupangwa ambayo inaruhusu watu kwa urahisi hoja karibu maeneo hawajui na kuwa na uwezo wa urahisi kuongeza yao. Pia, ni muhimu kuelewa sheria za biashara za bidhaa ndani na nje na kuzitumia kwa usimamizi wa hali ya programu kwa njia thabiti. Ninapenda mtandao kwa sababu ni wenye kukaribisha, wenye kujumuisha, na wenye kufurahisha. Na sikuzote kuna jambo jipya la kujifunza.