I have been programming since I'm 10, Ask Me Anything!

twitter logo github logo ・1 min read

I started off with Commodore Basic on a C64 when I was 10 years old. Most of the things I know are self thought. But it was slow because I didn't have internet until four or five years later. I studied but never finished Applied Computer Sciences and worked as a freelancer and consultant for over ten years. I also had some (in the end not so...) permanent positions.

My newest interests are Rust and Mechanical Keyboards. Most of my projects nowadays are web related. I love to do JAMStack applications with Vuejs in the Frontend. I also work a lot with Ruby (sometimes on Rails) but personally prefer smaller frameworks like Sinatra or Express. I also create a game with Vuejs because I think Vuejs is great for state management. I'm not sure if it will ever be done.

twitter logo DISCUSS (25)
markdown guide
 

What tools do you use to prebuild your Vue.js applications on the server in deploy time?
It seems that client side rendered SPA and even server side rendered in runtime application don't suite the JAMStack app definition:

When is your site not built with the JAMstack?
A single page app that uses isomorphic rendering to build views on the server at runtime.

 

That is an excellent point you make here. In the JAMStack the frontend is completely static. So either you simply use a Vuejs application as is, which wouldn't be pre-rendered, or you use frameworks like Nuxt and Gridsome which both can render a static, prerendered and self-hydrating (means, Javascript takes over the pre-rendered page later) page for you. It is also possible to write the Webkit magic yourself using prerender-spa-plugin.

 

I haven't heard about prerender-spa-plugin before, will give it a try, thanks 😉

VuePress looks pretty interesting too (vuepress.vuejs.org/). One of the main benefits to using prerendering is SEO. Without any prerendering, Google will usually end up thinking the page data is just 'we're sorry, but x doesn't work properly without javascript enabled' which isn't ideal :D

In my experience Google bot is able to crawl content even from SPA with content generated on the client. But having the website prerendered on the server is definitely much much better for both performance and SEO metrics.

Indeed. Also despite Google being able to parse and execute Javascript, the functionality is not only limited but also deferred. According to Google, the bot is putting everything on a late execution list that takes longer than a few milliseconds. Your website might need a few days or even weeks to get indexed this way.

This source here explains it well: seopressor.com/blog/javascript-seo...

Vuepress is great for pages that are very blog or documentation like. Customization is possible but not as easy as with Gridsome or Nuxt.

Yeah true, haven't used Gridsome before but Nuxt seemed really powerful in what it offered on top of Vue. discovery.journeyfurther.com/how-t... is a pretty interesting article on Googlebot crawling and where it may be heading in the (hopefully near) future.

 

What's the perspective to make a React/Vue/Angular atomic according to separate the components?

I having trouble in thinking how much components do I need in my SPA and separate.

Would be nice some wisdom.

 

That's a very common question in the Vuejs Berlin Meetup (that I'm organizing).

There's no definite answer to that of course. I usually separate something into its own component as soon as it works on its own but not if it's just a couple of lines that are definitely specific to the current component or page.

Don't treat specialised components. If there's something that you must probably don't reuse or would need to rewrite to make reusable you still can put it into a component if it is helping with readability

 

Goes to show if you enjoy what you are doing, nothing can stop your learning. Have you ever heard of the Crystal language?

 

Yes I heard of it and really like the approach of a static typed language with Ruby syntax. I never used it in production though.

 

Seconding this, Crystal has all of the things I love about ruby but with static typings, better speed, great docs, and a pretty great community.

 

Why are designers of programming languages not simplifying syntax till we can solve problems and figure out the language without having to read a manual for ten hours whilst still providing the best manual in the world for that programming language that is ever improving ,etc.

 

Programming a computer is inherently complex. Programming languages are attempts to make the formulation of instructions for computers easier, but this comes at a cost. The machine code that gets generated will be more complex and less optimized the more abstracted the language is. To mitigate this compilers have very sophisticated methods to analyze and optimize the code as much as possible. This requires computing power and lots of RAM.

More abstraction also gives less flexibility as it always leads to specialization. It is for example very easy to calculate things and draw bar graphs with a software like Excel. But it gets very hard to maintain as soon as it grows. On the other hand is it much easier to structure some code of a general purpose language, like Python, to create anything Excel can do and more. But Python is already much more complex and therfore harder to learn than Excel.

To stick with the example: Python also comes with lots of great libraries that abstract away the nitty-gritty. It is very easy to plot formulas with the right library. But as soon as you want to do something that the library doesn't support you have to work around it or, even worse, lose all the nice abstraction and suddenly need to implement drawing routines by yourself.

That became a wall of text already, sorry for that. But one more thing to showcase my point:

Languages like Ruby and Python are attempts to make programming much easier. Compared to C, Java or Rust, they spare you lots of complexities like typing and memory management. And while it seems easy when just using the languages you'll quickly see the main difference as soon as you compare their performance. Ultra high level languages like Python and Ruby are 100s if not 1000s of times slower than lower level languages.

 

Actually you might want to check out this approach: metacode.app

 
 

I'm afraid I now know why I never got to be a famous musician :(

 

I had one & I am not a famous musician. Yet. 😳

You may remember these competitors too.
en.wikipedia.org/wiki/ZX_Spectrum
en.wikipedia.org/wiki/Amiga_500

I do but never had any of them. I have a friend though who's collecting old hardware of this era

I have a bunch.

16KB RAM on the Spectrum 😭

 

What was your first program/website that you ever built?

 

The very first program was probably one of the examples in the commodore 64 programming handbook.

The first I was paid for was a python software for parsing xml structures that would describe recipes for some kind of provisioning system. That was back in 2008 I think.

 

How long have you been developing in Rust? How's it going so far?

 

Unfortunately no professional (paid) projects yet. I used it for some pet projects since about a year come and go. I still fight with the data lifetime stuff but apart from that I'm very happy.

Classic DEV Post from Dec 26 '18

What’s your favorite JS interview question?

Norman profile image
Programmer, OpenSource enthusiast and hacker based in Berlin, Germany.
Sign In

Follow the languages and libraries you care about.

Happy coding ❤️