<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Mikael Sukoinen</title>
    <description>The latest articles on Forem by Mikael Sukoinen (@mikaelsu).</description>
    <link>https://forem.com/mikaelsu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F313629%2F37e1f954-ae63-4f6f-b7ab-d68daaff8d1a.jpg</url>
      <title>Forem: Mikael Sukoinen</title>
      <link>https://forem.com/mikaelsu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mikaelsu"/>
    <language>en</language>
    <item>
      <title>App + Web = Vaadin</title>
      <dc:creator>Mikael Sukoinen</dc:creator>
      <pubDate>Mon, 17 Feb 2020 14:33:12 +0000</pubDate>
      <link>https://forem.com/mikaelsu/app-web-vaadin-4aa1</link>
      <guid>https://forem.com/mikaelsu/app-web-vaadin-4aa1</guid>
      <description>&lt;p&gt;The “App vs. Web” question is  in the mind and mouth of many developers. With tech giants such as Microsoft investing big on Progressive Web Applications (PWAs for short) the topic is  increasingly popular. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;A quick disclaimer: I’m a trainee at Vaadin, but this blog is for my personal  thoughts - not Vaadin’s. I think it’s only natural that the content of my DEV blog is influenced by my current occupation.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The question is essentially about how you deploy an application: Do you code a mobile app that the user downloads and installs on their device? Or is a web page that the user can navigate with a browser a better option? Do you need both?&lt;/p&gt;

&lt;p&gt;Progressive Web Applications attempt to answer that question; they are native like, installable, applications that run in the browser but can be installed to look and feel like ordinary software. There are benefits for the programmer in this approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code once run everywhere&lt;/li&gt;
&lt;li&gt;Only update and maintain on one platform&lt;/li&gt;
&lt;li&gt;No store required&lt;/li&gt;
&lt;li&gt;Lower development/maintenance cost&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and for the user:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Access on any device&lt;/li&gt;
&lt;li&gt;No updates to download&lt;/li&gt;
&lt;li&gt;Less storage required&lt;/li&gt;
&lt;li&gt;Fast loading times&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are several popular PWAs in play today, such as Twitter, Pinterest, Tinder etc. I'm only scratching the surface of the potential of PWAs here and there are several resources that take a deeper dive. Maybe I'll write my next blog post to introduce some of them? &lt;/p&gt;

&lt;p&gt;However, like anything on the internet, these applications require a front-end and a back-end, i.e the UI and what it controls. These "full-stack" apps can be complicated to code with multiple dependencies running through several programming languages.&lt;/p&gt;

&lt;p&gt;Now, this is where Vaadin comes in; a framework for developing both ends of a PWA in Java. No knowledge on HTML or CSS required to build the UI. You can read more in this &lt;a href="https://vaadin.com/learn/tutorials/java-web-app"&gt;entry level tutorial series&lt;/a&gt; that I've been helping with. New chapters every week!&lt;/p&gt;

&lt;p&gt;If you’ve seen my previous posts you’ll know classify myself as a beginner - I’m simply content in only having to deal with 1 programming language instead of 3 for now, even when that requires its own tool to master… &lt;/p&gt;

&lt;p&gt;(Maybe I could insert one of my cheesy analogies here?)&lt;/p&gt;

&lt;p&gt;“It’s easier to build a house with power tools than with three foreign friends that don’t speak the same language”. &lt;/p&gt;

&lt;p&gt;(Eh, you get my point anyway!)&lt;/p&gt;

&lt;p&gt;Do you have any thoughts on this approach of programming PWAs or any thoughts on PWAs in general? Have you used Vaadin or something else? I’d love to discuss.&lt;/p&gt;

&lt;p&gt;Until next time,&lt;br&gt;
Mikael&lt;/p&gt;

</description>
      <category>java</category>
      <category>webdev</category>
      <category>vaadin</category>
      <category>beginners</category>
    </item>
    <item>
      <title>From a beginner to a beginner: where to begin?</title>
      <dc:creator>Mikael Sukoinen</dc:creator>
      <pubDate>Fri, 24 Jan 2020 11:17:52 +0000</pubDate>
      <link>https://forem.com/mikaelsu/from-a-beginner-to-a-beginner-where-to-begin-1701</link>
      <guid>https://forem.com/mikaelsu/from-a-beginner-to-a-beginner-where-to-begin-1701</guid>
      <description>&lt;p&gt;By definition, a “beginner” needs somewhere to “begin”.  But with an overwhelming amount of examples projects and tutorials online and all the possible ideas in your mind, the starting point can become blurry.&lt;/p&gt;

&lt;p&gt;Truth is, there is none. Programming is a vast land: multiple intertwined roads, obstacles, grey areas and promising destinations fill its map but no one has drawn a point of entry. Luckily, it doesn’t matter where you enter - it only matters that you do!&lt;/p&gt;

&lt;p&gt;With that being said, drawing your own map can help you navigate the complex environment. There is a list of resources to draw from; narrow down the selection of possible languages and development tools by looking under the hood of something you want to do. Then narrow down the level of complexity by lowering the standards of the hood you’re looking under. I.E. if you want to build a game from scratch, begin with a 2D flash game before producing the next great VR hit.  However, I suggest you aim high with your destination or you might quickly run out of challenges. &lt;/p&gt;

&lt;p&gt;After you’ve taken a peek at the “engine” under the hood, try to reverse engineer it. There are several example projects that can help you do this, but first ask yourself why the developer has built a certain feature. Once you have your answer, ask yourself &lt;em&gt;how&lt;/em&gt; they did it.&lt;br&gt;
If you don’t know what you want to do at all, then ask yourself why do you want to become a programmer in the first place? This isn’t a mocking question, but a question with an answer that’s likely taking you a step closer to finding what you need to learn.&lt;/p&gt;

&lt;p&gt;“You learn to swim quickly after dipping your toes into water… yet jumping into the deep end of a pool can drown you.”&lt;/p&gt;

&lt;p&gt;The quote above sounded better before I wrote it down. Similarly, the idea for my first development project sounded better before writing it in code. Point is, I still wrote it and I can learn something from doing so.&lt;/p&gt;

&lt;p&gt;Here’s a few suggestions If you still struggle to find something to do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Search for beginner tutorials&lt;/li&gt;
&lt;li&gt;Enroll in an online code academy&lt;/li&gt;
&lt;li&gt;Find a coding group near you&lt;/li&gt;
&lt;li&gt;Read a book on entry level programming&lt;/li&gt;
&lt;li&gt;Spend time on this site&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every step is a step forward. &lt;/p&gt;

&lt;p&gt;Keep on,&lt;br&gt;
Mikael&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>webdev</category>
      <category>inspiration</category>
    </item>
    <item>
      <title>Indie game developer attempts real programming</title>
      <dc:creator>Mikael Sukoinen</dc:creator>
      <pubDate>Fri, 10 Jan 2020 11:44:26 +0000</pubDate>
      <link>https://forem.com/mikaelsu/indie-game-developer-attempts-real-programming-3l4o</link>
      <guid>https://forem.com/mikaelsu/indie-game-developer-attempts-real-programming-3l4o</guid>
      <description>&lt;p&gt;I knew the gaming industry wasn’t for me even before I finished my studies. However,  I carried a firm belief that the skillset required to craft video games is applicable in other computer oriented fields.&lt;/p&gt;

&lt;p&gt;"It’s just programming, right?"&lt;/p&gt;

&lt;p&gt;Well, no. My experience of writing code in a game engine with visual building to aid the development is only touching the surface of the vast sea of “programming”.&lt;/p&gt;

&lt;p&gt;Video games can of course be incredibly complex software at their peak, and some popular titles, such as Markus Persson's masterpiece “Minecraft” that sold to Microsoft for $2,5 billion, were originally written in Java. &lt;br&gt;
Yet the idea of programming a simple web application from scratch was more frightening than intriguing in my narrow comfort zone.&lt;/p&gt;

&lt;p&gt;It’s easy to install a game engine, such as Unity, by looking at games similar to what you’re making and installing the engine used. Unity runs scripts written in C#, so there’s no need to worry about what programming language to write or where to write it thanks to the native Visual Studio integration. &lt;br&gt;
But using this same method to choose an IDE and all the plugins required to best build your specific application is a challenge - especially if you are unsure of what you're building in the first place!&lt;br&gt;
There are similarities in the subjectivity of choice between a game engine and an IDE, but he spectrum seems a bit too wide for someone who hasn’t already tried several of them. &lt;/p&gt;

&lt;p&gt;The best option was was to learn by personal trial and error:&lt;/p&gt;

&lt;p&gt;Luckily, as in game development, the documentation for programming just about any application is comprehensive with multiple outlets overflowing with information (often for free). There are also several features and plugins, such as code completion, that helps overcoming the initial struggle. After finally tipping my toes into “real” programming, the amount of available help covered all questions I had. &lt;br&gt;
Furthermore, there are several active forums with people discussing these subjects; so far any question I could come up with had already been asked and answered. &lt;/p&gt;

&lt;p&gt;When it came to actually producing code, the lack of visual building such as the noob friendly "Blue Print" system of Unreal Engine made it difficult to see all the connections within the code. It was difficult to read... like learning to read for the first time.&lt;/p&gt;

&lt;p&gt;Now, imagine going from elementary school to high school: it's the same crap in a new environment and you are slightly older than a few months ago. That's it!&lt;/p&gt;

&lt;p&gt;This was exactly how my coding rite of passage felt as soon as the fear of the unknown vanished along the childish desire to be good at everything you've tried.&lt;/p&gt;

&lt;p&gt;Reading up on and trying the syntax of Java while designing the UI with Vaadin is similar to game design even though the process occurs in a different setting. I spent a couple of relatively fun days on learning, which already then made me cringe at my first attempts indicating clear progression. Soon afterwards, my first web application was up and running. &lt;br&gt;
It became a breeze to adapt and iterate on something I’ve already done instead of blindly navigating through the fog of something completely unfamiliar. This includes learning new programming languages/environments/tools or anything at all, really.&lt;/p&gt;

&lt;p&gt;So what’s the takeout of this subjective, specific and short blog post? As cheesy as it sounds, your bank of knowledge can always be expanded and adapted into new things. &lt;/p&gt;

&lt;p&gt;The road of learning is paved and it leads everywhere - all you need to do is keep on walking.&lt;/p&gt;

&lt;p&gt;Until next time,&lt;br&gt;
Mikael&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>webdev</category>
      <category>java</category>
      <category>vaadin</category>
    </item>
  </channel>
</rss>
