When I joined the LearnByDoing.it project, I didn’t really know what I am in for. It’s just that I like to learn new stuff and the idea of developing a game just to get some new skills was already pretty interesting to me. Since joining, I have realised a couple of things about the ASP.NET Core 2.0 framework that we use and thought about sharing them.
Shortly after I did some tutorials and started to understand more and more about the project, I realised I have a completely wrong approach here. My studies at the University of Warsaw’s Faculty of Physics taught me this low-level – or bottom-up – way of trying to understand a problem. For example, to understand how neurons communicate with each other, first you have to learn some electrodynamics and to understand that, you have to have some serious mathematical background. What’s more, if there is anything you don’t understand, you ask and go deeper and deeper until you grasp the topic firmly. In that sense, learning ASP.NET MVC made me change my approach – here it’s not like you won’t understand the bigger picture, if you didn’t learn every function in details. The framework uses so many classes and libraries that it’s even impossible to know exactly how everything works under the hood and that’s okay. That’s even relieving.
In case you do want to dig in and see some base class definitons, Visual Studio (the tool made by Microsoft to develop professional code) provides you with an option to do that. This whole program is so useful to developers, I was greatly surprised when I saw just how easier and more productive can writing your code get. With things like code snippets, real-time code validation and in-built code management tool you can focus less on typing and more on designing. There’s no need to use half-way solutions like tools that are lightweight, but have few functionalities – Visual Studio may be heavy, but it has every functionality you need.
Shortly after I’ve joined LearnByDoing.it I’ve also realised why all these people on Stack Exchange and other forums were suggesting every beginning developer to just start any project. Just to get it going and see how it feels to develop something and encounter errors. It really teaches you a lot to try to create something new, especially with someone in a team. That’s the whole of point of learning by doing. However to start feeling that you are actually learning something and making progress, you need to develop an important skill – not caring about failures and obstacles you face at the start. For a long time, it was crippling for me to start a project only to drop it after few days when I was blocked by some errors I couldn’t possibly understand or easily find their solutions. Thankfully, now I see that in these moments especially it’s important to keep pushing and searching for an answer and ask someone for help. It may also help to know that no one is free from having misconceptions and being wrong about things at the start. Let me explain.
For example, take a regular HTML
<head> element. It may sound crazy, but until last week, I was convinced that this tag defines the headline of the text on your webpage – if you put ‘News’ there, you will see big bold ‘News’ headline above the text in the browser. It took me about 5 seconds to read about it and clarify that belief, but since middle school I had this misconception in my mind and it was a part of what I thought of HTML in general. I may have misunderstood my high middle school teacher or he didn’t explain it correctly – my point here is that our whole worldviews may be built on such misconceptions. We may have very firm and concrete views on some difficult concepts or topics and these views may be completely incorrect and based on subjective feelings we got when first approaching these areas. Sometimes it’s better not to believe yourself – only after we truly experience some concept or approach it from a different perspective can we fix our misconceptions and realise that it may not have been so scary after all.