Channel Update - Away for a two weeks

in steemstem •  7 years ago  (edited)

This is just a channel update; I will be making a video tomorrow evening (If I can find the time) and then I won't be able to make another one for about a week and a half. Coincidentally, I also decided that for the sake of producing good quality content on a semi-regular basis, I will need to change my format a little.

As a freelance programmer, I often find myself moving from place to place. Also, unfortunately, time is always running against me due to my day job and it can be difficult to muster the energy in the evening to make a solid and well thought out video (This is why I can't make longer videos and why my longer projects are cut into parts). For the next week and a half or so, I will be in a place where I can not make any videos due to time constraints and the lack of a good setup. I figured that I should at least give my followers a heads up so that you guys didn't think I was abandoning you. Later today, I will definitely make a short video on YouTube to alert the non-Steemit/Utopian crowd to this as well and I will probably add that video into this post when it is finished.

With that announcement out of the way, let me talk a little bit about the channel format change. Recently, I have found myself getting fatigued; specifically, I am finding that focusing on one specific language for a long period of time is really just not conducive to creating quality content (at least not to my own standards). The "Intro to Kotlin" video series really was a low point for me in this particular aspect and I found myself retreading many concepts in a way that wasn't new or interesting. Kotlin is very similar to many of the more mainstream languages in how it presents itself on the surface (Though it is still a fantastic language that you should learn).

Unlike Rust, Elm, Go or Elixir; Kotlin is really just a new, improved and pragmatic version of an older language (Java) with changes to make it more pleasant to program in. That being said, I couldn't help feeling that the intro series was really just a Java series in disguise and not a good one at that. There are literally hundreds, if not thousands of great Java tutorials on the internet and I want my content to be unique. I felt that I was able to somewhat salvage those videos by making the Kotlin Project videos but I still didn't really feel all that satisfied with the results overall. In contrast, I've had many different people comment on my Intro to Rust series mentioning how I was able to get them into the language etc. This is the reaction that I want.

It is for this reason and for a few others that I will not be making any more intro tutorial series videos for any language that isn't radically new or different. For instance, it doesn't make sense to make an intro series for a language like Dart because anyone who knows a little Java or JavaScript can become productive in Dart in a few hours (Making a video about Dart Isolates however does make sense). On the other hand, a language like BuckleScript/ReasonML, while based off of Ocaml, lacks enough solid documentation that it becomes more sensible to at least make a few introductory videos to help people understand the syntax and concepts that the language brings to the table.

Also, I want to just cut loose and do whatever strikes my fancy on a given day. If I feel like writing a machine learning algorithm in Haskell, then I am just going to go ahead and do so. If I feel like making a large tutorial on writing micro-services in Clojure or F# then I certainly will just go and do it. For this reason, I will no longer be following a schedule based on which language I am focusing on. That is to say, that when I sit down to code for a video I will be choosing what to do based on nothing that was planned ahead of time. Not only do I believe that doing this will recapture the original intentions of the channel, I also think that you guys will find it more interesting overall. This means that I might end up doing some videos with more mainstream languages like C#, JavaScript, Python, Ruby etc but only sparingly as I still want to focus on less common languages. This also means that you guys will have more freedom to make requests which again, I believe will certainly help foster the community and make the videos more interesting.

I am a fairly hungry person when it comes to learning new languages and frameworks as well. I will probably start to work with technologies that I haven't used in production (which is not something I ever intended to do up until now). I am making this choice because I believe that I can learn these languages well enough to present projects with them and I also will feel more motivated doing so. These changes are exciting for me and I hope you find them exciting as well. I know that a few of you might find this disappointing at first but hopefully you will be able to see that this will probably turn into something good for all of us.

I will be back soon and I hope you guys will be ready. In the meantime, here is a sneak peak at something that I am working on, a Clojure Neural Network application that generates pictures like the ones you see here:

render-00001.png

render-00035.png

render-00002.png

They may not look like much, but when you add more layers, more neurons and scale up the resolution, things become a bit more crazy.

render-00010.png

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  
  ·  7 years ago (edited)

@tensor, thank you for update.
Regarding kotlin, you are right about pragmatic approach to the language ( high level compatibility and intentional similarity with java).

But there are two very important aspects targeted with kotlin:

  • Program code is easy readable
  • From the beginning it has great developer toolset (especially IDE of course)

These aspects are not exciting, especially to young, smart, sharp, cutting edge developers like you.
But when you deal with bigger multi-year projects, that aspects of language becomes really important.

I am author and maintainer of an accounting software for Bosnia.
I have started project project in 1994 :).
https://github.com/knowhow/F18_knowhow

It is originally built with clipper programming language
https://en.wikipedia.org/wiki/Clipper_(programming_language), then ported to its opensource clone https://github.com/hernad/harbour-core

After 23 years being programmer, I still enjoy learning new technologies. But previous experience says: If you want to make something useable, It has to be easy readable - not only for you.

When you mentioned clojure, you reminded me of the days when I was 18 years old learning lisp and declarative programming. It was great and exciting experience. But today i would say to myself: forget about that - the produced code is not readable.

  ·  7 years ago (edited)

I am probably not nearly as young as you think I am....

I cut my teeth programming professionally with C and Common Lisp back in 97/98 and I still use many of the more mainstream languages even today in my professional work. Though before that I was mostly doing Fortran and Common Lisp for data science work (Chemical engineering major). I may not have been working professionally in 94 but I was still programming (mostly data science languages along with C/C++ and Basic). I still maintain a repo in Smalltalk and one in Lua hah.

In my opinion however, I have been fairly fortunate as a professional in that I have been able to pursue whatever I want with whatever tools I want due to being a freelancer/digital nomad. That is mainly how and why I set about learning so many different languages over the years. You name a language that was popular at some point past 97ish and I guarantee I've worked with it (or have tried to) at least once in production. I also consider myself to be language agnostic as a result of this; each of the languages that I know is a tool in my tool belt that can be used based on the use-case of the project.

I absolutely never said I disliked Kotlin (on the contrary, I love Kotlin because it cuts down on the verbose syntax of Java and promotes a more functional design pattern); the main point I was trying to make in this particular post was that because it is so similar to Java, Scala and Groovy (or any C-like really) the intro tutorial series that I made ( for language features rather than projects) was not good content because much of it was mimicking many of the beats from other much better tutorial series that already exist on the web.

I will still continue to make video tutorials of Kotlin projects in the future because I still really enjoy the language and I believe that it is a language that people should be learning if they want to do any kind of mobile development on Android or if they want to work on the JVM at all. (and when the native compiler comes out.... I'm sure you get the point).

I started my YouTube channel to cover less popular languages because I was finding that some of my colleagues and friends were having trouble adopting these languages due to the lack of good clear documentation. Specifically, Elixir and Elm (at the time of making my channel) were seriously lacking real world examples for many of their core features. Even Go (which just picked up speed right after I finished my Go web tutorial), didn't really have great production level examples floating around, unless you were willing to read a bunch of repos and compiler specs. I also really like the idea of doing a "live coding' tutorial series which is how I do most of my videos (intros included) which actually is why the intros became a problem.

Clojure is still a guilty pleasure of mine because I started with CL (and worked with Scheme and Racket) but I also know that Clojure will never see a wider adoption then it currently has due to the fact that it is just so niche. That being said, I can think of tons of grips I have with Clojure like the notoriously bad error messages (without spec) and the slow compilation speed.

Readability is not really a concern for a channel like mine because it is almost always already assumed that you have some knowledge of the syntax and the language going into the tutorials. I did take a little detour from this format to make these intro series for Rust and then for Kotlin (I didn't make them for Elixir, Elm or Go). I will now only be committing to doing an intro series on a language if it is like Rust (has unique features) because I don't want to be repeating myself in content (which in turn would lower the quality of the content). I made some critical errors on my intro to kotlin series that were just silly and unforgivable for someone who has been programming as long as I have and I chalk it up to being not as enthusiastic about the content as I should have been (not because I dislike the language but because the content feels obvious to me).

Maybe that's a little bit of an egotistical stance to take, but it is my channel and I am not really doing it for the money or the views so much as I am doing it because I like to. If I have no interest in the content then there really isn't a point to doing the videos in the first place.

Anyhow, thank you for your comments and I am sorry about the essay.

  ·  7 years ago (edited)

Contrary, thank you for this explanation. I wrongly supposed that you are young programmer. So in terms of our proffesion you are veteran also.
Then follows correction:
You are not young, only smart, sharp and cutting edge programmer :).

I am aware that you were primarily negative about your introductory presentations, not about kotlin language itself. I agree and support your decision to avoid introduction level courses because internet is full of them.
I have pointed out that readability matters motivated by my personal experience handling non-trivial, mostly low-quality written project.

Sorry for digression. I am glad I know you better now at personal (age) level.

No worries man. I enjoyed this conversation. In all fairness to your point of view, I rarely end up maintaining projects long term because of the quick turn over of being a freelancer. Typically, I build out whatever it is I am working on for a company and then I am off to work on another project. My code needs to be readable for other programmers and that's always a consideration.

Anyways, Cheers.

Congratulations @tensor! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of posts published

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

waiting for more from you tensor! keep motivating!

Congratulations @tensor! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!