Ta lekcja jest w bazie eduweb
Zaloguj się kontem z dostępem albo wykup dostęp do bazy, żeby obejrzeć wideo.
Lekcja 30/ 42Tłumaczenie stałych elementów interfejsu
Programiści specjalizujący się w JavaScript już dawno przestali być postrzegani jako tylko i wyłącznie Front-End developerzy. JavaScript po stronie serwera jest już z nami ponad 10 lat za sprawą pierwszych wersji NodeJS.
W świecie gdzie frameworki takie jak React, Angular, Svelte czy VueJS są podstawą tworzenia współczesnych aplikacji internetowych, rozwiązania pozwalające pojedynczemu developerowi stworzenie pełnoprawnej aplikacji zaczęły kiełkować.
Tym właśnie jest NuxtJS - intuicyjny framework dla VueJS, który pozwoli Ci tworzyć zaawansowane konfiguracje Twoich wydajnych aplikacji internetowych, bazując na wiedzy którą już posiadasz z VueJS.
W tym projekcie tworzyć będziemy praktyczny projekt - klona Wikipedii! Minipedia pobierze dane z prawdziwego źrodła danych, zewnętrznego API WikiMedia - będzie łudząco podobna do oryginału oraz współdzieliła najważniejsze funkcjonalności, takie jak dostarczanie treści w różnych wersjach językowych, możliwość wyszukiwania artykułów, czy pobieranie najpopularniejszych wpisów dla danego języka. Stworzymy także podstronę wyświetlającą za każdym razem losowy artykuł w danej wersji językowej.Zobaczysz też, jak dokonać migracji ze statycznej strony HTML na Nuxt - oraz jak tworzyć przykładowe komponenty podczas tego procesu.Dzięki temu wszystkiemu, dowiesz się jak wykorzystać nabytą wiedzę w praktyce.
Dzięki Nuxtowi dowiesz się jak optymalizować Twoje strony www z duchem idei progressive enhancement, dostarczając coraz to lepsze doświadczenia dla swoich użytkowników oraz tworząc aplikację napisaną w 100% w JavaScript, która będzie działała nawet wtedy, gdy użytkownik jawnie wyłączy go w przeglądarce! To wszystko za SSR (Server Side Rendering), dzięki któremu treści będą gotowe do konsumpcji już przy wstępnej, pierwszej odpowiedzi z serwera WWW.Oczywiście, ma to swoje implikacje na wydajność naszej aplikacji - sprawiając że Lighthouse czy optymalizacja pod SEO staje się coraz prostsza!
Czymże jest ekosystem danego frameworka bez wsparcia społeczności! Dlatego podczas tego kursu nauczysz się instalować i wykorzystywać różne pluginy i moduły, które zaoszczędzą Ci dużo czasu. Dowiesz się też, jak tworzyć własne moduły - które rozszerzą działanie Twojej aplikacji Nuxt w sposób czysty i zarządzalny.
Nuxt jest frameworkiem w którym pracujemy zarówno po stronie front-endu, jak i back-endu. W związku z czym, stworzymy swoje własne API (bazujące na express.js) które będzie pewnego rodzaju pośrednikiem pomiędzy API WikiMedia oraz Twoją aplikacją internetową.
W tym kursie, dowiesz się także jak tworzyć swoje własne Middleware'y - czyli fragmenty kodu wywoływane pomiędzy przechodzeniem między stronami, czy podczas innych zapytań HTTP.Dodatkowo, zobaczysz jakie narzędzia daje nam Nuxt aby tworzyć progresywne aplikacje internetowe, oferując wsparcie dla takich funkcjonalności jak np. animacje między przejściami pojedynczymi podstronami naszego serwisu.
Tajemnicze i18n - czyli numeronim odpowiadający angielskiemu słowu "internalisation" - odnosi się w kontekście web developmentu do tłumaczenia danych na różne języki. Podczas realizacji projektu Minipedii, nie tylko wykorzystamy standardowe podejście do tłumaczeń stałych elementów naszego interfejsu użytkownika, ale także przetłumaczymy same dane zwracane z API, wykorzystując inną wersję językową w zależności od preferencji użytkownika!
Poznasz też kilka ciekawych pluginów i rozwiązań dotyczących optymalizacji pod SEO - poza faktem, że podejście spełniające intencje użytkownika jest najlepszym, co możemy zrobić - pluginy generujące nam mapę stron automatycznie na podstawie zadeklarowanych przez nas podstron, czy generatory danych jsonld pomogą w pozycjonowaniu Twojej wydajnej aplikacji jeszcze wyżej w hierarchii wyszukiwarek.
Aby móc efektywnie korzystać z tego kursu, powinieneś posiadać średnio zaawansowaną wiedzę z kategorii Front End, z naciskiem na umiejętność posługiwania się JavaScriptem oraz solidne podstawy NodeJS. Konieczna jest znajomość Vue, jako że Nuxt jest frameworkiem korzystającym z niego u swoich podstaw. Jeśli czujesz się dość swobodnie w wyżej wymienionych aspektach web developmentu, ten kurs będzie idealny dla Ciebie.
Zmiany wprowadzone w lekcji · 12 min
diff --git a/26/minipedia/lang/en-US.js b/26/minipedia/lang/en-US.js
new file mode 100644
index 0000000..4ae3881
--- /dev/null
+++ b/26/minipedia/lang/en-US.js
@@ -0,0 +1,32 @@
+export default {
+ welcome: 'Welcome'
+ // 'Main page': 'Main page'
+ // 'Contents': 'Contents'
+ // 'Current events': 'Current events'
+ // 'Random article': 'Random article'
+ // 'About Wikipedia': 'About Wikipedia'
+ // 'Contact us': 'Contact us'
+ // 'Donate': 'Donate'
+ // 'Contribute': 'Contribute'
+ // 'Help': 'Help'
+ // 'Learn to edit': 'Learn to edit'
+ // 'Community portal': 'Community portal'
+ // 'Recent changes': 'Recent changes'
+ // 'Upload file': 'Upload file'
+ // 'Tools': 'Tools'
+ // 'What links here': 'What links here'
+ // 'Related changes': 'Related changes'
+ // 'Special pages': 'Special pages'
+ // 'Permanent link': 'Permanent link'
+ // 'Page information': 'Page information'
+ // 'Cite this page': 'Cite this page'
+ // 'Wikidata item': 'Wikidata item'
+ // 'Print/export': 'Print/export'
+ // 'Download as PDF': 'Download as PDF'
+ // 'Printable version': 'Printable version'
+ // 'In other projects': 'In other projects'
+ // 'Wikimedia Commons': 'Wikimedia Commons'
+ // 'Languages': 'Languages'
+ // 'Register': 'Register'
+ // 'Login': 'Login'
+}
\ No newline at end of file
diff --git a/26/minipedia/lang/es-ES.js b/26/minipedia/lang/es-ES.js
new file mode 100644
index 0000000..c6b5dc1
--- /dev/null
+++ b/26/minipedia/lang/es-ES.js
@@ -0,0 +1,3 @@
+export default {
+ welcome: 'Bienvenido'
+}
\ No newline at end of file
diff --git a/26/minipedia/lang/fr-FR.js b/26/minipedia/lang/fr-FR.js
new file mode 100644
index 0000000..b2eb007
--- /dev/null
+++ b/26/minipedia/lang/fr-FR.js
@@ -0,0 +1,3 @@
+export default {
+ welcome: 'Bienvenue'
+}
\ No newline at end of file
diff --git a/26/minipedia/nuxt.config.js b/26/minipedia/nuxt.config.js
index ff2e9c0..2fbe808 100644
--- a/26/minipedia/nuxt.config.js
+++ b/26/minipedia/nuxt.config.js
@@ -49,8 +49,28 @@ module.exports = {
modules: [
// https://go.nuxtjs.dev/axios
'@nuxtjs/axios',
- 'nuxt-basic-auth-module'
+ 'nuxt-basic-auth-module',
+ 'nuxt-i18n',
],
+ i18n: {
+ locales: [
+ {
+ code: 'en',
+ file: 'en-US.js'
+ },
+ {
+ code: 'es',
+ file: 'es-ES.js'
+ },
+ {
+ code: 'fr',
+ file: 'fr-FR.js'
+ }
+ ],
+ lazy: true,
+ langDir: 'lang/',
+ defaultLocale: 'en'
+ },
basic: {
name: process.env.USERNAME,
pass: process.env.PASSWORD,
diff --git a/26/minipedia/package-lock.json b/26/minipedia/package-lock.json
index a1751a8..c3ee6ce 100644
--- a/26/minipedia/package-lock.json
+++ b/26/minipedia/package-lock.json
@@ -1114,6 +1114,29 @@
}
}
},
+ "@intlify/shared": {
+ "version": "9.1.6",
+ "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.1.6.tgz",
+ "integrity": "sha512-6MtsKulyfZxdD7OuxjaODjj8QWoHCnLFAk4wkWiHqBCa6UCTC0qXjtEeZ1MxpQihvFmmJZauBUu25EvtngW5qQ=="
+ },
+ "@intlify/vue-i18n-extensions": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@intlify/vue-i18n-extensions/-/vue-i18n-extensions-1.0.2.tgz",
+ "integrity": "sha512-rnfA0ScyBXyp9xsSD4EAMGeOh1yv/AE7fhqdAdSOr5X8N39azz257umfRtzNT9sHXAKSSzpCVhIbMAkp5c/gjQ==",
+ "requires": {
+ "@babel/parser": "^7.9.6"
+ }
+ },
+ "@intlify/vue-i18n-loader": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@intlify/vue-i18n-loader/-/vue-i18n-loader-1.1.0.tgz",
+ "integrity": "sha512-9LXiztMtYKTE8t/hRwwGUp+ofrwU0sxLQLzFEOZ38zvn0DonUIQmZUj1cfz5p1Lu8BllxKbCrn6HnsRJ+LYA6g==",
+ "requires": {
+ "@intlify/shared": "^9.0.0",
+ "js-yaml": "^3.13.1",
+ "json5": "^2.1.1"
+ }
+ },
"@nodelib/fs.scandir": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz",
@@ -6934,6 +6957,11 @@
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.9.1.tgz",
"integrity": "sha512-AhYrAxJ/IW2257nHkJasUjtxHhmYIUEHEjsofJtGYsPWk8pTjqjbPFlJfOwfY+WX8YBiKHM1l0ViDC/mye2SWg=="
},
+ "js-cookie": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz",
+ "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ=="
+ },
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -6997,6 +7025,11 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
},
+ "klona": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz",
+ "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA=="
+ },
"last-call-webpack-plugin": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz",
@@ -7138,6 +7171,11 @@
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
"integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4="
},
+ "lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
+ },
"lodash.template": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
@@ -7804,6 +7842,36 @@
"consola": "^2.3.2"
}
},
+ "nuxt-i18n": {
+ "version": "6.27.0",
+ "resolved": "https://registry.npmjs.org/nuxt-i18n/-/nuxt-i18n-6.27.0.tgz",
+ "integrity": "sha512-QOZ7ePML3/HyC6NgUSsNb/dItnySwYIRike1koWgSqwM3RK7RQBJD9egcc/IIqsYPuA7rIivb/csXjipiBZQjA==",
+ "requires": {
+ "@babel/parser": "^7.14.1",
+ "@babel/traverse": "^7.14.0",
+ "@intlify/vue-i18n-extensions": "^1.0.2",
+ "@intlify/vue-i18n-loader": "^1.1.0",
+ "cookie": "^0.4.1",
+ "devalue": "^2.0.1",
+ "js-cookie": "^2.2.1",
+ "klona": "^2.0.4",
+ "lodash.merge": "^4.6.2",
+ "ufo": "^0.7.2",
+ "vue-i18n": "^8.24.4"
+ },
+ "dependencies": {
+ "cookie": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
+ "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
+ },
+ "ufo": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/ufo/-/ufo-0.7.2.tgz",
+ "integrity": "sha512-cfxpkL4g79LrCXa1RyvhM/obxunKRjHApD4Ml4UG0CZcKvfodfKH0YTmnm6ofKKUnLzBMdfXSZzlgyQmj6b3sw=="
+ }
+ }
+ },
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -11353,6 +11421,11 @@
"resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog=="
},
+ "vue-i18n": {
+ "version": "8.24.4",
+ "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.24.4.tgz",
+ "integrity": "sha512-RZE94WUAGxEiBAANxQ0pptbRwDkNKNSXl3fnJslpFOxVMF6UkUtMDSuYGuW2blDrVgweIXVpethOVkYoNNT9xw=="
+ },
"vue-loader": {
"version": "15.9.6",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.6.tgz",
diff --git a/26/minipedia/package.json b/26/minipedia/package.json
index 811dfae..6b8cca7 100644
--- a/26/minipedia/package.json
+++ b/26/minipedia/package.json
@@ -20,6 +20,7 @@
"lodash": "^4.17.21",
"nuxt": "^2.15.3",
"nuxt-basic-auth-module": "^1.4.0",
+ "nuxt-i18n": "^6.27.0",
"v-tooltip": "^2.1.3"
},
"devDependencies": {
diff --git a/26/minipedia/pages/index.vue b/26/minipedia/pages/index.vue
index 061cc3c..94e8d64 100644
--- a/26/minipedia/pages/index.vue
+++ b/26/minipedia/pages/index.vue
@@ -1,177 +1,17 @@
<template>
<article class="content">
- <h1>
- Janusz Korczak
- </h1>
-
- <span class="notice">From Wikipedia, the free encyclopedia</span>
+ <h1>Minipedia - {{ $t('welcome') }} </h1>
- <FullInfoBox :content="$store.state.fullInfo.general" />
-
- <p>{{ $store.state.summary }} </p>
-
- <TableOfContents :content="$store.state.content" />
-
- <ContentSection
- v-for="section in $store.state.content"
- :title="section.title"
- :content="section.content"
- :key="section.title"
- />
-
- <h2 id="references">References</h2>
- <ol class="references">
- <li>
- Yad Vashem (2010). "Ceremony Marking 68 Years Since its Murder of Korczak and the Children of
- the Orphanage". Yad Vashem The Holocaust Martyrs' and Heroes' Remembrance Authority. Retrieved
- 27 January 2012.
- </li>
- <li>
- "Jewish Doctor Janusz Korczak Died With 190 Children at Treblinka Court: Changes Date of Death
- for Orphanage Director". JTA. 30 March 2015. Retrieved 30 March 2015.
- </li>
- <li>
- Sandra Joseph, Institute of Education in London (July–August 2002). "POLE APART - the life and
- work of Janusz Korczak". Young Minds Magazine 59. Archived from the original on 28 September
- 2007. Retrieved 27 January 2012.
- </li>
- <li>
- "Polskie Stowarzyszenie im. Janusza Korczaka". www.pskorczak.org.pl (in Polish). Retrieved
- 2016-03-12.
- </li>
- <li>
- Tadeusz Lewowicki (2000). "Janusz Korczak (1878–1942)" (PDF, 43 KB). Prospects:the quarterly
- review of comparative education, vol. XXIV, no. 1/2, 1994, p. 37–48. UNESCO: International
- Bureau of Education. Retrieved 27 January 2012.
- </li>
- <li>
- Prof. Barbara Smolińska–Theiss (2012). "Janusz Korczak – zarys portretu (the portrait)" (in
- Polish). Rok Janusza Korczaka (The official year of Janusz Korczak). Archived from the original
- on 15 April 2012. Retrieved 27 January 2012.
- </li>
- <li>
- The Month, Volume 39. Simpki, Marshall, and Company. 1968. p. 350. When Dr. Janusz Korczak, a
- Jewish philanthropist and agnostic, voluntarily chooses to follow the Jewish orphans under his
- care to the Nazi extermination camp in Treblinka...
- </li>
- <li>
- Chris Mullen (March 7, 1983). "Korczak's Children: Flawed Faces in a Warsaw Ghetto". The
- Heights. p. 24. Retrieved 25 August 2013. An assimilated Jew, he changed his name from Henryk
- Goldschmidt and was an agnostic who did not believe in forcing religion on children.
- </li>
- <li>
- Janusz Korczak (1978). Ghetto diary. Holocaust Library. p. 42. You know I am an agnostic, but I
- understood: Pedagogy, tolerance, and all that.
- </li>
- <li>
- Janusz Korczak; Aleksander Lewin (1996). Sława: Opowiadania (1898-1914) (in Polish). Oficyna
- Wydawnicza Latona. p. 387. ISBN 978-83-85449-35-5.
- </li>
- <li>
- Maria Falkowska (1978). Kalendarium życia, działalności i twórczości Janusza Korczaka (in
- Polish). Wydaw-a Szkolne i Pedagogiczne. p. 8.
- </li>
- <li>
- Joanna Cieśla (15 January 2012). "Henryk zwany Januszem. Janusz Korczak - pedagog
- rewolucjonista" (in Polish). S.P. Polityka. Historia. Retrieved 27 January 2012.
- </li>
- <li>
- Józef Ignacy Kraszewski (2012). "Moja Biblioteczka". Historia o Janaszu Korczaku i o pięknej
- Miecznikównie. LubimyCzytać.pl. Retrieved May 25, 2012.
- </li>
- <li>
- Hanna Mortkowicz-Olczakowa (1960). "Goldszmit Henryk", in Polski Słownik Biograficzny, T. VIII.
- P. 214
- </li>
- <li>
- "CENTOS". Jewish Historical Institute. Retrieved 2020-07-20.
- </li>
- <li>
- Dorit Gani (April 10, 2018). "Who Stood with the Orphans When the Nazis Came?". The National
- Library of Israel. Retrieved 26 November 2019.
- </li>
- <li>
- Agnieszka Litwiniuk (March 29, 2012). "Stefania Wilczyńska". Sylwetki warszawskich Żydówek
- (Profiles of Warsaw Jewish women) (in Polish). Warszefroj, Centrum Kultury Jidysz (Yidish
- Centre). Retrieved 14 December 2013.
- </li>
- <li>
- "Dom Sierot. Krochmalna 92". Swedish Holocaust Memorial Association. Retrieved 27 January 2012.
- </li>
- <li>
- "Perle, Joshua". Encyclopaedia Judaica. Encyclopedia.com. Retrieved June 15, 2019.
- </li>
- <li>
- Nick Shepley (7 December 2015). Hitler, Stalin and the Destruction of Poland: Explaining
- History. Andrews UK Limited. p. 55. ISBN 978-1-78333-143-7.
- </li>
- <li>
- Jerzy Waldorff, Władysław Szpilman, The Pianist. Page 96.
- </li>
- <li>
- Mary Berg, The Diary of Mary Berg: Growing Up in the Warsaw Ghetto, Oxford: Oneworld
- Publications, 1996, pages 169-170.
- </li>
- <li>
- "The Jewish Cemetery on Okopowa Street in Warsaw (Cmentarz żydowski przy ul. Okopowej w
- Warszawie)". Cmentarium. 2007. Retrieved January 8, 2013.
- </li>
- <li>
- Mirosław Gorzelanny (November 27, 2012). "School history". Specjalny Ośrodek Szkolno –
- Wychowawczy im Janusza Korczaka w Borzęciczkach. Archived from the original on June 26, 2013.
- Retrieved January 8, 2013.
- </li>
- <li>
- "Wyrok w sprawie Korczaka – omówienie". Fundacja Nowoczesna Polska. Retrieved 2016-03-12.
- </li>
- <li>
- "Wygrany spór o datę śmierci Korczaka. Prawda pokonała "własność intelektualną"". Dziennik
- Internautów. Retrieved 2016-03-12.
- </li>
- <li>
- "Author: Janusz Korczak". Wolne Lektury. Retrieved 2016-03-12.
- </li>
- <li>
- "Janusz Korczak", Book Institute
- </li>
- <li>
- Modig, Cecilia (2009). Never Violence – Thirty Years on from Sweden's Abolition of Corporal
- Punishment (PDF). Ministry of Health and Social Affairs, Sweden; Save the Children Sweden.
- Reference No. S2009.030. p. 8.
- </li>
- <li>
- Agata Anna Lisiak (2010). Urban Cultures in (post)colonial Central Europe. Purdue University
- Press. pp. 147–. ISBN 978-1-55753-573-3.
- </li>
- <li>
- "Monument to Janusz Korczak (Warsaw)". monuments-remembrance.eu. Retrieved 2020-04-09.
- </li>
- <li>
- Rin, Svi (April 1966). "גדולי חינוך בעמנו Book Review". Jewish Social Studies. 28: 127-128.
- </li>
- <li>
- Hickling, Alfred (June 12, 2008). "?". The Guardian. London.
- </li>
- <li>
- "Chlodnagaden nr. 33 - Dit Holbæk". Dit Holbæk (in Danish). 2017-03-14. Retrieved 2017-04-09.
- </li>
- <li>
- Knapp, Bettina (1995). French Theater Since 1968. New York: Twayne Publishers. ISBN 0805782974.
- </li>
- <li>
- "Korczak (2011) | British Youth Music Theatre".
- </li>
-
- </ol>
-
+ <nuxt-link :to="switchLocalePath('en')">English</nuxt-link>
+ <nuxt-link :to="switchLocalePath('fr')">Français</nuxt-link>
+ <nuxt-link :to="switchLocalePath('es')">Español</nuxt-link>
</article>
</div>
</template>
<script>
export default {
- layout: 'default',
- middleware: ['wiki-routing'],
+ layout: 'default'
}
</script>13 rozdziałów42 lekcje7h 2min
Dostęp do wszystkich kursów z bazy eduweb za 199 zł/mies.
Cześć! Nazywam się Wojtek i moja obecna rola to Full Stack Engineer - tworzeniem stron zajmuję się już od ponad dziesięciu lat. Jeśli miałbym wskazać moją pasję, to zdecydowanie byłoby to programowanie w technologiach webowych i dalsze szerzenie się wiedzą :)
Możesz kojarzyć mnie z kanału Koduje na Youtube, gdzie stworzyłem ponad 50 darmowych poradników dotyczących różnych zagadnień z Front-Endu, czy jako głównego koordynatora cyklicznych spotkań Meet.js Warszawa. Poza tym jestem też członkiem programu Mozilla TechSpeakers - technologie open-source, ich tworzenie oraz przemowy publiczne również nie są mi obce. Od czasu do czasu prowadzę również indywidualne zajęcia dla osób poszukujących swojej pierwszej pracy jako Front-End developer.
Uwielbiam tematykę dostępności sieci - o której świadomość, zwłaszcza na polskim rynku - jest dosyć znikoma. Interesuję się również IoT oraz VR (❤️) czy Game-Developmentem, również w JavaScript!
Uważam, że nauczanie jest zdecydowanie najlepszą metodą, by poszerzać swoje horyzonty i dalej się rozwijać!
https://koduje.pl