Interesting, in Scandinavia Engineering Physics is quite prestigious and many graduates end up as SWEs. In fact many researchers across Sweden hold Engineering Physics degrees in CS and other disciplines outside physics.
Just want to shime in and recommend you to visit Chongqing. Incredibly interesting city to explore, great food and still has some rural China vibe that the other first tier cities start to lack.
Why not pick a problem the interviewer have not solved, and let the interviewee and interviewer solve the problem together. This shows how the candidate is thinking, and how they are working together with others. It will also let the interviewer get a more un-biased view of the difficulty of the algorithm or CS problem.
Anyone with experience of tech work in SE Asia? I am currently studying in Beijing, and I am really surprised how nice the life-style is here. But from what I've read, software engineering is not the best profession here opportunity-wise.
I think this course is about Computer Architecture as in Computer Organization, ie a course about the layer between digital circuits and operating systems. You probably confuse the term with Software Architecture.
I'm a teen I guess. Haskell as a first language worked great for me, and I happened to write a game and a few scripts in Python two months ago so I think I can answer your question.
So, what made learning Haskell a good experience I think was mainly the strong type system. You could basically even early on use functions you barely knew what its name meant solely based on its type signature. It also made the progress of writing a program very nice, you write it and then it fails, you go back and try fix it, and when it compiles it usually worked.
There are some things to keep in mind though. Wild recursion is really the GOTO of functional languages, it's important to teach how to use the generalized folds and traversals early on. Secondly it is important to have simple analogies to concepts such as functors, monoids and monads etc. If you make sure to not care about these strange names then you can go pretty far by just trying to make the type signatures stick together, and it's not important for a beginner to grasp these directly either.
Python was quite smooth to learn coming from Haskell, the syntax is similar and it simply felt like programming in Haskell's do-blocks. It was very easy to get quickly going, I managed to write a little script talking to a JSON API almost directly after reading the official tutorial. I also digged a little bit into the realm of OOP, I wrote a simple game using Kivy. It felt quite nice actually, I could get some code re-use, although it was harder to get that (as newbie) than in Haskell.
EDIT: Something like typed Racket might been even better when I think about it, since Racket got a lot of resources for complete beginners. Then you get the benefit of easy to use syntax too, although syntax is probably not the biggest problem when starting out. For the record I usually recommend Python or Racket when people ask me where to start, because in the end I don't think it matter much what language you go with first, just make sure not to limit the paradigm of languages you learn afterwards.
Learning Haskell is a deep rabbit hole. Make sure you decide when it is enough, there's tons to learn and you can't be an expert on everything and you don't have to programming in Haskell.
In many cases a few examples and type signatures are enough for the intermediate Haskell user. Virtually all packages for Haskell are free software though, so you can of course contribute documentation if you feel there ain't enough, because obviously if the current Haskell users don't need more docs they won't write it.
LYAH and RWH, then its just to lurk the web for good blog posts making sense of the academic papers. ;)
Seriously though, there's tons of resources for beginners in Haskell. School of Haskell, above mentioned books, tons of good SO answers, #haskell at freenode is super friendly and helpful, Haskell for All by Tekmo is a good blog making sense of some more advanced Haskell stuff, there's probably more that I've missed to mention.
The best way to learn Haskell is to write a lot of Haskell and being interested in learning interesting stuff (that might be quite abstract for some time before you get a good intuition and can apply it to real world code).
This is due to patents. I blogged a solution some while ago, but since then removed my the entire blog, here is a raw paste of the original commit: https://gist.github.com/klrr/73ce6da0fb6947ed92a5