hjertnes.blog

#

08.03.2018 01:00

I’m going to give Safari a try as my default browser for a while. Chrome is a little bit weird at the moment, Firefox is fine, but the memory usage is ridiculous and it looks like shit.

Programming languages in 2018

08.03.2018 01:00

What are the programming languages I’m interested in, or are using in

1.

The ones I know and are using regularly, if not daily are: Python, Swift, JavaScript, C#, SQL, LISP and Shell scripting.

Python, Node and C# are my go to languages when I’m going to write a backend. What I’m going with depends on a number of factors. But I mostly go with Python and Django for personal stuff, because I know it so well and I think it is a lot of fun to work with. I often go with Node if I’m going to write something small and single purpose, because of how small and fast it is. And I think C# and .NET Core is a great option when you want the safety of a strong type system.

For basic scripting my go to tools bare shell scripting and Python. I use plain shell scripting when I just want to build an abstraction for some complex commands or series of commands, and I got with Python for anything more complex.

I’m digging more and more into Swift as I’m getting serious about native App Development again. I like it a lot. And I enjoy it way more than I ever did with Objective-C. The strong type system makes it a lot easier to catch stuff under development time. But I’m not a huge fan of Xcode.

Knowing how to use plain SQL is the smartest thing I ever did. It was the second real programming thing I learnt, after PHP. It is a fantastic tool to have in your tool belt for when you need to run plain sql to fix stuff, read stuff straight out of the database or to clean stuff up. Or even if you don’t want to introduce a ORM to your project.

LISP. I have developed a real interest in LISP and Scheme over the last year and a half. And I love how elegant and fun it is. I use it all the time to extend Emacs / Spacemacs.

Javascript. I still enjoy using JavaScript, especially on the front end. I think Javascript is the perfect language for anything user interface. But I think we need a “Django moment” or “Ruby on Rails moment” for it to really take off on the backend.

What are the languages I’m going to look into in 2018:

  • ReasonML. I’m going to play around with this on some small front end projects. And I might introduce it at work if I like what I see.

  • LISP. I’m probably going to play a lot more with emacs lisp and chicken scheme. Because the elegance is too much fun

  • If I find the time I’m also going to take a look at GoLang

#

07.03.2018 01:00

I fucking hate working form home when there are other people here.

#

07.03.2018 01:00

Editing files with Emacs and Tramp over SSH is freaking awesome. Where have this been my whole life?

Merged Hjertnes.blog and JStips.blog

07.03.2018 01:00

I started jstips.blog in November(I think) to challenge myself to write a lot about JavaScript. But I started to get frustrated with the limits I put on myself. So I had the choice between either extending the scope of the site to development in general or to merge it with this site. I went with the latter. But I’m going to continue with the main challenge I put on myself. I’m going to post something every single day.

#

06.03.2018 01:00

Awesome Clojure book I’ve been reading for the last few days : Clojure for the brave and true

#

06.03.2018 01:00

I’ve changed the Overcast playback settings back to 1x, after using the max playback speeds for years.

Why? I’m trying to be more intentional on what I do and how I do it this year.

Fast development versus reliability

06.03.2018 01:00

When you choose what programming languages to use for your project you should take in to consideration if developer productivity or reliability is more important.

For example if I develop the backend in Python and Django I’m much more productive, but if I use a programming language such as Java or C# I get a much stronger type system, which are catching more potential problems during compile time (if you are using it correct).

Having a strong type system can help you a lot, which means that it helps you to make sure that you don’t add a number to a string variable. But that means that you need to use more time declaring what type a variable has. But on the other side you often have to add more code to make sure that your data structures have the correct content in dynamic languages like Python.

And having a strong type system is also very helpful when you refactor code.

On the other hand, languages like Python often requires far less code than C# does.

It doesn’t matter that much on the end result, but my experience is that having solid automated tests are very important when you use dynamic languages. And I think there are something very comforting about letting the compiler doing the first round of validation.

This is by the way one of the big advantages of using Swift instead of Objective C.

#

05.03.2018 01:00

How to get into programming.

05.03.2018 01:00

The “How do I get into programming?” questions is one of the hardest things to answer. Or I do at least think it is. This is because being good at programming is about having experience doing it and having the drive to always looking for better ways of doing everything. Including those things you didn’t know was a problem, and of course the things you think are annoying.

The way I got into programming, and the way everyone I know who know how to code got into it was by doing. They had something they wanted to make, and they figured out how to do it. I started with web development. First I wanted to add a visit counter to my web sites, then I figured out how to make it only count unique visitors within a timeframe. Before I moved on to implementing a full CMS driven by PHP and MySQL.

The best way to learn how to code is to start learning about the technology you would like to make it in. If you want it to be a iOS app you should start with Swift and Xcode and if web devvelopment is your thing I would start with HTML and CSS, before moving over to JavaScript and server side technology. I would start with either Django or Ruby On Rails because they are very easy to get started with and almost everything you want is included. And React or Vue are good places to start for when you want to do Web App Development.

How you learn the basics are up to you. Some people like to watch video lessons, while others like a more interactive approach and I prefer books and blog posts. How you do it is up to you, but I would encourage you to try different methods and stick with what works for you.

And the final step to get started is to find a project. If you are doing a web development, making a custom CMS is a good place to start. Not because you’ll get the most amazing thing every. But just because you will learn a lot from doing it. Everything from server side rendering on what people will see and more advanced Web App development on the admin side of it.

A todo app is a good place to start, if you are doing an native app; but also works if you are doing a web app.

Then I would encourage you to make what every you are making as good as you have the time for. And always improve everything as you learn new stuff. A solid project that shows how you work and what you can do is always useful when you are going to apply for a job.

There will be a lot of “abstractions” no matter what kind of software development you get into. They are a way to make more complicated or time consuming tasks easier to work with. The good thing about them is that you don’t need to know all the details when you start out. The bad thing is that you need to learn more things. But I would still take the time to learn to theory behind them as you get more experience.

If you decide that you would like to make a living as a developer then I would start by looking at what kind of languages, frameworks and technology are popular in your area. And the best way to do that is by looking a job listings. And then start learning that. The next step is to have some code you can share with potential employers when you apply for a job. The closer the code is to what they use the better it is. It is just a way to show them that you actually know how to do the job. Because the biggest nightmare when we hire is to get someone who don’t know how to code.