{"id":4506,"date":"2024-05-09T18:54:13","date_gmt":"2024-05-09T18:54:13","guid":{"rendered":"https:\/\/www.juniorjavadeveloper.pl\/?p=4506"},"modified":"2024-05-10T08:22:20","modified_gmt":"2024-05-10T08:22:20","slug":"ciagla-nauka-i-doskonalenie-w-it-dobrodziejstwo-czy-przeklenstwo","status":"publish","type":"post","link":"https:\/\/www.juniorjavadeveloper.pl\/en\/2024\/05\/09\/ciagla-nauka-i-doskonalenie-w-it-dobrodziejstwo-czy-przeklenstwo\/","title":{"rendered":"Continuous learning and improvement in IT \u2013 a blessing or a curse?"},"content":{"rendered":"<p class=\"has-large-font-size wp-block-paragraph\">Je&#380;eli nie chcesz codziennie uczy&#263; si&#281; czego&#347; nowego i doskonali&#263; sw&oacute;j warsztat pracy, to IT chyba nie jest dla Ciebie. Pracuj&#261;c w IT przechodzi&#322;em przez zafascynowanie nowymi technologiami oraz znu&#380;enie powtarzalno&#347;ci&#261; &ldquo;nowych technologii&rdquo;.<\/p>\n\n\n    <style>\r\n        .wpj-jtoc.--jtoc-theme-basic-light.--jtoc-has-custom-styles {\r\n            --jtoc-numeration-suffix: \". \";\n--jtoc-numeration-color: #adadad;\n        }\r\n\r\n            <\/style>\r\n\r\n\r\n\r\n<div id=\"wpj-jtoc\" class=\"wpj-jtoc wpj-jtoc--main --jtoc-the-content --jtoc-theme-basic-light --jtoc-title-align-left --jtoc-toggle-icon --jtoc-toggle-position-right --jtoc-toggle-1 --jtoc-has-numeration --jtoc-has-custom-styles --jtoc-is-unfolded\" >\r\n\r\n    \r\n    <!-- TOC -->\r\n    <div class=\"wpj-jtoc--toc\">\r\n                                <div class=\"wpj-jtoc--header\">\r\n                <div class=\"wpj-jtoc--header-main\">\r\n                                        <div class=\"wpj-jtoc--title\">\r\n                        <span class=\"wpj-jtoc--title-label\">Table of Contents<\/span>\r\n                    <\/div>\r\n                                                                <div class=\"wpj-jtoc--toggle-wrap\">\r\n                                                                                                                    <div class=\"wpj-jtoc--toggle-box\">\r\n                                    <div class=\"wpj-jtoc--toggle\"><\/div>\r\n                                <\/div>\r\n                                                    <\/div>\r\n                                    <\/div>\r\n            <\/div>\r\n                            <div class=\"wpj-jtoc--body\">\r\n                        <nav class=\"wpj-jtoc--nav\">\r\n                <ol class=\"wpj-jtoc--items\"><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                <a href=\"#nauka\" title=\"Learning\" data-numeration=\"1\">Learning<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                <a href=\"#doskonalenie\" title=\"Improvement\" data-numeration=\"2\">Improvement<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                <a href=\"#nowe-technologie\" title=\"New technologies\" data-numeration=\"3\">New technologies<\/a>\r\n                    <\/div> <ol class=\"wpj-jtoc--items\"><li class=\"wpj-jtoc--item --jtoc-h3\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"3\">\r\n                <a href=\"#zafascynowanie\" title=\"Fascination\" data-numeration=\"3.1\">Fascination<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h3\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"3\">\r\n                <a href=\"#znuzenie\" title=\"Boredom\" data-numeration=\"3.2\">Boredom<\/a>\r\n                    <\/div> <\/li><\/ol><\/li><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                <a href=\"#wszystko-to-samo\" title=\"All the same\" data-numeration=\"4\">All the same<\/a>\r\n                    <\/div> <ol class=\"wpj-jtoc--items\"><li class=\"wpj-jtoc--item --jtoc-h3\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"3\">\r\n                <a href=\"#podstawowe-technologie-i-rozwiazania\" title=\"Basic technologies and solutions\" data-numeration=\"4.1\">Basic technologies and solutions<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h3\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"3\">\r\n                <a href=\"#podstawa-rozwiazan-opartych-o-jezyk-java\" title=\"The basis for Java-based solutions\" data-numeration=\"4.2\">The basis for Java-based solutions<\/a>\r\n                    <\/div> <\/li><\/ol><\/li><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                <a href=\"#jednak-cos-innego\" title=\"Something different\" data-numeration=\"5\">Something different<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                <a href=\"#podsumowanie\" title=\"Summary\" data-numeration=\"6\">Summary<\/a>\r\n                    <\/div> <\/li><\/ol>            <\/nav>\r\n                    <\/div>\r\n    <\/div>\r\n<\/div>\r\n\n\n\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"nauka\">Learning<\/h2>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Literally eternal learning, whether you like it or not. If you don't find time to study on your own, your employer will demand it from you. Regardless of whether you program (dev), test software (test) or manage servers (admin), you have to learn new things. Programming consists of many elements, not only the programming language, there are also algorithms, databases, cloud, there is a lot to learn.<\/p>\n\n\n\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"doskonalenie\">Improvement<\/h2>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Since you have already learned new things, after some time, there will definitely be a newer version of the \"Y\" tool that you have been using and it will be necessary to improve in this area. Are you sure you know the tool you are using well? When was the last time you read its technical documentation? You can always learn something new and practice with an existing tool, but in a different configuration. You can optimize existing solutions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"nowe-technologie\">New technologies<\/h2>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">To, jak to jest z tym zafascynowanie nowymi technologiami oraz znu&#380;eniem powtarzalno&#347;ci&#261; &ldquo;nowych technologii&rdquo;?<\/p>\n\n\n\n<h3 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"zafascynowanie\">Fascination<\/h3>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">The fascination with new technologies was related to their potentially new possibilities. Technology Y was supposed to solve problem Z, but that wasn't always the case. I have always been interested in learning new things and I still am. For me, it is natural that when I need to learn a new technology, I engage 100% in learning it.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph translation-block\">I remember when we moved from desktop applications written in Java Swing to web applications available through a browser. The desktop application only required running a ready-made JAR file and maybe knowledge of the MVC pattern. For the web application, it was necessary to learn how servers work, the HTTP protocol, HTML, and new frameworks. In the meantime, low-code and no-code solutions have appeared somewhere, which I wrote about in another article <a href=\"https:\/\/www.juniorjavadeveloper.pl\/en\/2023\/03\/03\/low-code-i-no-code-czy-generatory-kodu-zrodlowego-zastapia-programistow\/\" data-type=\"post\" data-id=\"2562\" target=\"_self\">Low-code and No-code \u2013 will source code generators replace programmers? <\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"znuzenie\">Boredom<\/h3>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Tiredness with new technologies did not result from a lack of willingness to learn new things, but after some time it turned out that everything was similar to each other and worked on similar principles - everything was the same. It is worth noticing recurring patterns and building a solid base for further development based on them.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Zmiana bazy danych z Oracle na PostgreSQL, ju&#380;, to widzia&#322;em, po prostu j&#281;zyk SQL i co&#347; do zarz&#261;dzania baz&#261; danych. Serwer aplikacyjny JBoss, zmiana na Glassfish, ju&#380;, to widzia&#322;em, domeny, klastry, &#378;r&oacute;d&#322;a danych, panel administracyjny. Aplikacje desktop w JavaFX zamiast Java Swing, ju&#380;, to widzia&#322;em, wzorzec MVC, akcje jako callback na przyciskach, no dobra, tu by&#322;o lepiej, ale dowiedzia&#322;em si&#281; o tym po czasie. O frameworkach opisz&#281; wi&#281;cej poni&#380;ej w sekcji &ldquo;wszytko to samo&rdquo;.<\/p>\n\n\n\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"wszystko-to-samo\">All the same<\/h2>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Why do I use the statement that it's all the same? The knowledge base and technological solutions in IT are relatively unchanged. The elements that change are the names and versions of tools and frameworks that use these basic solutions. I will deliberately omit AI, which has caused quite a stir in IT, but probably over time AI will become the basis for other IT solutions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"podstawowe-technologie-i-rozwiazania\">Basic technologies and solutions<\/h3>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Below, I have described, in a very simplified way, some basic technologies\/solutions:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"has-large-font-size\">The basis for most web applications when it comes to client-server communication is the HTTP protocol. \n<ul class=\"wp-block-list\">\n<li>In terms of the visual side, the basis is HTML, Javascript and CSS styles.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li class=\"has-large-font-size\">Data storage and access are, in most cases, databases regardless of the type (SQL, NoSQL).\n<ul class=\"wp-block-list\">\n<li>Here we distinguish tables, queries and CRUD operations.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li class=\"has-large-font-size\">Both web applications and databases must run on some server, and here you need to know the basics of server administration.\n<ul class=\"wp-block-list\">\n<li>Network communication e.g. IP address and port.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"podstawa-rozwiazan-opartych-o-jezyk-java\">The basis for Java-based solutions<\/h3>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">What is the foundation for Java technologies\/solutions?<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"has-large-font-size\">JDBC (Java Database Connectivity) API \u2013 communication with any relational database.<\/li>\n<\/ol>\n\n\n\n<blockquote class=\"wp-block-quote has-large-font-size is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">JDBC (Java Database Connectivity) API &ndash; Official Documentation<\/p>\n<cite>The JDBC&trade; API provides programmatic access to relational data from the Java&trade; programming language. &#377;r&oacute;d&#322;o: <a href=\"https:\/\/docs.oracle.com\/javase\/tutorial\/jdbc\/overview\/index.html\">https:\/\/docs.oracle.com\/javase\/tutorial\/jdbc\/overview\/index.html<\/a><\/cite><\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote has-large-font-size is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Hibernate ORM uses JDBC<\/p>\n<cite>Hibernate is concerned with data persistence as it applies to relational databases (via JDBC) &#377;r&oacute;d&#322;o: <a href=\"https:\/\/hibernate.org\/orm\/\">https:\/\/hibernate.org\/orm\/<\/a><\/cite><\/blockquote>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li class=\"has-large-font-size\">Java\/Jakarta Servlet API \u2013 client-server communication.<\/li>\n<\/ol>\n\n\n\n<blockquote class=\"wp-block-quote has-large-font-size is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Java\/Jakarta Servlet API &ndash; Official Documentation<\/p>\n<cite>A <strong>servlet<\/strong> is a Java programming language class that is used to extend the capabilities of servers that host applications accessed by means of a request-response programming model. &#377;r&oacute;d&#322;o: <a href=\"https:\/\/docs.oracle.com\/javaee\/5\/tutorial\/doc\/bnafe.html\">https:\/\/docs.oracle.com\/javaee\/5\/tutorial\/doc\/bnafe.html<\/a><\/cite><\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote has-large-font-size is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SpringMVC uses Java\/Jakarta Servlet<\/p>\n<cite>This part of the documentation covers support for Servlet-stack web applications built on the Servlet API and deployed to Servlet containers. Individual chapters include <a href=\"https:\/\/docs.spring.io\/spring-framework\/reference\/web\/webmvc.html#mvc\">Spring MVC<\/a> [&hellip;] &#377;r&oacute;d&#322;o: <a href=\"https:\/\/docs.spring.io\/spring-framework\/reference\/web.html\">https:\/\/docs.spring.io\/spring-framework\/reference\/web.html<\/a><\/cite><\/blockquote>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li class=\"has-large-font-size\">HTML i ExpressionLanguage (EL) &ndash; &ldquo;wymiana danych backend-frontend i vice versa&rdquo;.<\/li>\n<\/ol>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Expression language (EL) is commonly used in web development using frameworks. Where expressions in curly braces {} are processed and their results are rendered in the UI. Expression language (EL) is also used in front-end frameworks and libraries as a way to embed dynamic data or expressions in HTML-like syntax \u2013 <code data-enlighter-language=\"kotlin\" class=\"EnlighterJSRAW\">&lt;h1&gt;<\/code><code data-enlighter-language=\"html\" class=\"EnlighterJSRAW\">Hello, ${name}&lt;\/h1&gt;<\/code> <\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-default\">\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph translation-block\">Ad. 1. Most tools for communicating with a Java database use the JDBC API, e.g.: <a href=\"https:\/\/hibernate.org\" target=\"_blank\" rel=\"noreferrer noopener\">Hibernate<\/a>, <a href=\"https:\/\/mybatis.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">MyBatis<\/a>, <a href=\"https:\/\/jdbi.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Jdbi<\/a>, <a href=\"https:\/\/spring.io\/guides\/gs\/relational-data-access\" target=\"_blank\" rel=\"noreferrer noopener\">Spring JDBC Template<\/a>.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph translation-block\">Ad. 2. Regardless of the selected Java web framework, the basis will be Java\/Jakarta Servlet API, e.g.: <a href=\"https:\/\/www.thymeleaf.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Thymeleaf, <\/a> <a href=\"https:\/\/tapestry.apache.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Tapestry,<\/a> <a href=\"https:\/\/www.playframework .com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Play Framework<\/a> and many others.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph translation-block\">Ad. 3. Many frameworks and libraries use Expression Language (EL), e.g. <a href=\"https:\/\/www.thymeleaf.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Thymeleaf<\/a> or have their own separate EL e.g. <a href=\"https:\/\/docs.spring.io\/spring-framework\/reference\/core\/expressions.html\" target=\"_blank\" rel=\"noreferrer noopener\">Spring Expression Language (SpEL)<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"jednak-cos-innego\">Something different<\/h2>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">There have been two revolutions during my work as a Java programmer.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"has-large-font-size translation-block\">Switching from Java EE to Spring Framework. I wrote why it's so important in the article <a href=\"https:\/\/www.juniorjavadeveloper.pl\/2023\/03\/09\/uzywamy-starych-frameworkow-java-ee-vs-spring-framework-dawid-kontra-goliat \/\" data-type=\"post\" data-id=\"2800\" target=\"_self\">We use \"old\" frameworks - Java EE vs. Spring Framework \u2013 David vs. Goliath<\/a>.<\/li>\n\n\n\n<li class=\"has-large-font-size translation-block\">Changing IDE from <a href=\"https:\/\/eclipseide.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Eclipse IDE<\/a> to <a href=\"https:\/\/www.jetbrains.com \/idea\/\" target=\"_blank\" rel=\"noreferrer noopener\">IntelliJ IDEA<\/a>.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"podsumowanie\">Summary<\/h2>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Mam nadziej&#281;, &#380;e w dzisiejszych szybko zmieniaj&#261;cych si&#281; technologicznie czasach nie trzeba nikogo przekonywa&#263;, &#380;e adaptacja przez nauk&#281; jest kluczem do sukcesu. &#379;eby nie by&#322;o, &#380;e tylko narzekam, to jestem wdzi&#281;czny za proces, kt&oacute;ry przeszed&#322;em z nowymi technologiami w &#347;wiecie IT, konkretnie zwi&#261;zanym z programowaniem. Wiem jak&#261; musz&#281; mie&#263; baz&#281; techniczn&#261;, &#380;eby w miar&#281; p&#322;ynnie prze&#322;&#261;czy&#263; si&#281; z rozwi&#261;zania Y na nowe rozwi&#261;zanie Z &ndash; &ldquo;bo wszystko, to samo&rdquo; &#128521;<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Thumbnail background photo by <a href=\"https:\/\/www.pexels.com\/photo\/inner-yard-with-plants-and-yin-and-yang-symbol-5999543\/\">Tom Fisk<\/a> from <a href=\"http:\/\/www.paxels.com\">www.paxels.com<\/a> edited in <a href=\"https:\/\/www.gimp.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">GIMP<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Je\u017celi nie chcesz codziennie uczy\u0107 si\u0119 czego\u015b nowego i doskonali\u0107 sw\u00f3j warsztat pracy, to IT chyba nie jest dla Ciebie. Pracuj\u0105c w IT przechodzi\u0142em przez zafascynowanie nowymi technologiami oraz znu\u017cenie powtarzalno\u015bci\u0105 &#8220;nowych technologii&#8221;. Nauka Dos\u0142ownie wieczna nauka, czy tego chcesz czy nie. Je\u017celi samemu nie znajdziesz czasu na nauke, to b\u0119dzie wymaga\u0142, tego od Ciebie [&hellip;]<\/p>","protected":false},"author":1,"featured_media":4557,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_ppp_document_settings_meta":"","footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[6],"tags":[],"class_list":["post-4506","post","type-post","status-publish","format-standard","has-post-thumbnail","category-felieton"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2024\/05\/2024-05-09_Ciagla-nauka-i-doskonalenie-w-IT_thumbnail.png","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts\/4506","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/comments?post=4506"}],"version-history":[{"count":17,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts\/4506\/revisions"}],"predecessor-version":[{"id":4559,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts\/4506\/revisions\/4559"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/media\/4557"}],"wp:attachment":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/media?parent=4506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/categories?post=4506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/tags?post=4506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}