Thursday, 3 June 2021

Week 6 [ 31.05-06.06.2021] Coding challenges


Coding Challenges

https://codecondo.com/coding-challenges/5-coding-challenges-to-help-you-train-your-brain/

Overview

    Every man who does sport professionally or takes seriously his sport-related hobby goes to the gym to keep his body in shape and good condition. The same rules apply to programmers. It is highly recommended to solve puzzles and work with algorithms to keep your brain in great shape. One of the great and fun activities that provide all of that is coding challenges.

    
https://insights.dice.com/wp-content/uploads/2019/05/Code-Coding-Challenge-Senior-Developer-Dice.png 

    Solving algorithm problems leads to several benefits. First of all, we will have better problem-solving skills. In the future, this skill provides a possibility to transform some tricky and complicated problems into easy and understandable solutions in a small amount of time. Another benefit would be in-depth language understanding. Some problems are really easy to solve if we know the specific properties of the programming language. For example, using python modules as singletons. Someone can say that this can lead to problems while testing or harder bug diagnosis but there are a lot of cases when it's best and most easy to implement the solution this way. For someone else, the biggest advantage of investing time in programming puzzles is fact that many companies use it for tests in the hiring process. So if your experience in these tasks is higher you have better chances to shine at a job interview. 
    

https://skillvalue.com/en/blog/tech-skills/coding-challenges-land-your-dream-job/

Where can we practice?

    There are a lot of websites that provide such possibilities. I will mention 3 of them I mainly use.
  • https://www.codewars.com/
"Codewars is a platform that helps you learn, train, and improve your coding skills by solving programming tasks of many types and difficulty levels." 

This quote comes from Codewars main page and basically describes whats that portal is about. This platform is the one I use the most. The overall experience is great, You can compare your solutions with other users, write unit tests for your own cases, or just practice. While You solve more complicated problems you can get more points and increase your account level. It can be motivating for some people. The only con I can find is the lack of problems that point to real-world scenarios.

  • https://leetcode.com 

This portal is highly oriented on job interviews and to be honest many of the puzzles available at this portal are used in hiring processes. The biggest con for me is the lack of some functionalities in a free account.

  • https://www.hackerrank.com 

https://www.hackerrank.com

The image above comes from Hackerrank portal and describes it perfectly. This page is used by developers and also by hiring companies. It's really possible that the task that you practiced will be used at the interview.

    We can read on many forums that it is really often case when a senior developer refuses to take a coding challenge because it's "too trivial for him". To be honest I've never heard such a silly thesis. In my opinion many of senior developer don't practice as much as when they where starting and they are just not sure if the will manage to complete puzzle ;) I know from myself that many algorithms I knew from studies are hidden far away in my brain. Many challenges push me to open old articles and books and refresh my knowledge. It's really possible that junior dev gonna solve some puzzles faster than senior because his algorithm knowledge is fresher. If you don't have time to solve this kind of challenge just be honest about it, don't put in conversation phrases like "easy", "trivial" etc. 

    If You are a programmer and never had the possibility to use this kind of portal I really encourage You to try to solve this puzzle for example: 
It's a medium-level puzzle, which pushes You to choose an efficient solution and use optimization techniques.


  1. Do You ever hear about coding challenges? What Do You think about it?
  2. Are You programming? If yes, did You tried the puzzle I've proposed? If no, Do You plan to learn to program?
  3. What do You think about portals mentioned in articles?

 




Sources:
https://codecondo.com/coding-challenges/5-coding-challenges-to-help-you-train-your-brain/
https://insights.dice.com/2019/07/03/senior-developers-refuse-interview-coding-challenges/
https://www.freecodecamp.org/news/the-10-most-popular-coding-challenge-websites-of-2016-fb8a5672d22f/
https://geekflare.com/coding-challenges-to-sharpen-thinking/

16 comments:

  1. I’ve heard about coding challenges many times. To be honest I’ve always wanted to participate but there was always something more important and I had no chance to take part in it. In my opinion, it has to be great fun and entertainment. What’s more on such events there is a huge opportunity for big brainstorm among young and creative people. I was a programmer but I became a team manager so now I’m leading young programmers and have less time for programming but I like it. I can say that half of my duties are related to managing and the other half is strictly programming. Thanks to that I’m never tired of coding and it won’t become my nightmare in the future. Portals that were mentioned in this article are interesting and I think that any programmer on any level may find something interesting there. Also, I’ve found some interesting facts from the manager's perspective that may help look for new developers.

    ReplyDelete
    Replies
    1. That’s interesting side of view. When I lead some projects I use coding challenges as morning warm ups. It allowed my team to wake up properly and start solving real problems more efficiently. Maybe You will consider same thing, it’s not so popular in Poland but certainly it’s worth looking at.

      Delete
  2. Actually I have never heard of such a solution. It seems very interesting but to be honest these days the amount of my private responsibilities does not allow me to seach for new opportunities (relocation, new-born child, master thesis, work change and some more). Due to those aspects I really have no time to maintain, but as I mentioned before I like the idea of these challanges and I will definitely bow down to them in the future.
    It is hard to say whether I am programming or not, I do some staff stuff while studying, but at this moment it is all I do.
    I do like these portals, they seem to give a lot of opportunities for peoplne on each and every level of programming ( at least i think it works this way :))

    ReplyDelete
    Replies
    1. Without any questions, it's a great way to improve your skills, so give it a chance when you won't be such busy :)

      Delete
  3. I've heard about coding challenges, but to be honest, I've never participated in any of them. As Łukasz mentioned above - there is always something more important. However, I like solving puzzles. From time to time I try to take a moment to “warm up my brain” with something other than work issues.
    Am I programming? It's hard to say :) I certainly don’t program in an object-oriented language, but I use SQL on a daily basis at work, does that count? :)
    I heard about one of the three portals you mentioned - https://www.codewars.com/. I think this is a great way to do some practice in your spare time.

    ReplyDelete
    Replies
    1. SQL certainly is a programming language! There are a lot of SQL puzzles on codewars.com also. Let's try it :P

      Delete
  4. 1. This is the first time I have heard of these types of sites. Could this be compared to all kinds of hackathons? Overall, it sounds like a very fun way to learn to code and a way to develop your skills. Interesting is the page described by you that allows you to people based on the challenges they have solved.

    2. Personally, I wouldn't call myself a programmer. I know the basics of several programming languages but I don't use this knowledge on a daily basis. I must admit that I do not enjoy programming too much, so I try to have less contact with it.

    3. As I mentioned in one of the answers, the portals you describe seem to be an interesting and fun option for learning and improving your programming skills. When I have a free moment, maybe I will try one of the pages but as I mentioned earlier, I'm not a huge fan of programming.

    ReplyDelete
  5. Yes, I heard about these problems, the fact that someone knows a programming language does not mean that he or she is a good engineer. It's on this principle that many companies recruit and the technical part in most cases boils down to solving a particular problem using an optimal algorithm. This is especially true in large companies like Google, Facebook or Amazon, which have their own internal framework for development and they value more knowledge of algorithms and understanding of patterns than knowledge of Angular or React.
    Yes, I'm a programmer, and when I was looking for my first job without having any experience, such tasks on algorithms were in 90% of interviews.
    Portals like these are very good for training, developing and understanding algorithms. Now I don't use them, but when I was looking for a job, I often looked at the solution of certain problems, since there are a lot of similar problems and everything cannot be solved or remembered, but they can teach the approach to this or that category of problem.

    ReplyDelete
  6. 1. I've heard about similar portals and coding challenges, but I've never tried to participate in any ot them. It sounds like a good and funny way to learn programming, especially for people who like solving puzzels with 'problem solving focused' personality.

    2. Similar to Mikołaj, I wouldn't call myself a programmer - I know the basics of some programming languages (mostly from uni) and in my daily work routine I use some fundamental knowledge about SQL or data-analyzing oriented languages. As I said before i neve tried to solve these puzzels and to be honest I don't plan to.

    3. I never seen any of mentioned sites, but they do seem intresting. For sure they're a great platform for programmers.

    ReplyDelete
  7. 1. I am aware of the existence of these types of sites, I've even participated in several challenges personally a few times. I believe that these sites are ideal for programmers who exhibit the characteristics of completonists and like to compete with others. Some people find this combination of leveling and coding very rewarding.
    2. As a rule, I don't program more than the university requires from me. I'm not a big fan of writing code and creating computer programs, but I understand that some people might be into it. I don't intend to learn any programming language, I only need knowledge that will be useful at my place of work.
    3. The portals mentioned in the article sound very promising. As I mentioned, the combination of such a feeling of getting better/climbing in the hierarchy and programming itself as someone's pleasure can turn out to be a bull's eye. I was also interested in Hackerrank portal - it sounds very banal, but how useful and seems to respond to real needs.

    ReplyDelete
  8. 1. Yes, I have heard about coding challenges, but never explored this topic. From what I have learned now, it is a very interesting topic. I see that this is a topic for people who are passionate about the topic.
    2. I wouldn't say I'm a programmer, I use DAX at work but I don't think I could compare myself to people who write in languages like JAVA or C ++, I'm a data analyst so now I'm focusing on DAX and SQL in the future I think about Python
    3. Honestly, this is the first time I heard about portals, it seems to me that these are solutions where both beginners and advanced people will find applications. I am not a programmer and unfortunately I cannot say more.

    ReplyDelete
  9. I’ve heard about coding challenges, however I’ve never took part in any of them, because I have a lot of coding opportunities at work. I think these platforms are a great opportunity to practise programming. As I’ve said, the best coding challenges I think I find at my job everyday, but in my free time I will willingly try the puzzle you recommended. I think all those platforms seems really great! It’s cool that you can compare your solutions with other people or the fact that it gives you opportunity to find out what to expect during interviews.

    ReplyDelete
  10. In full honesty I do not know much about programming. I guess you could say I know the absolute basics, however I never tried it myself. I was never a major in mathematics so I suppose I never thought it could be an achievable path for me. Maybe it’s just not my cup of tea ;) I do however like puzzles of various kinds. I do believe that it is important to exercise the brain especially in the age of easy accessible information. Also like with any other activity, you have to practice your skills in whatever it is that you do, even when you are a pro. As they say: Overconfidence is an enemy of excellence so it is better never to fall out of shape.

    ReplyDelete
  11. I have never heard about coding challenges as I have never been into programming. I study at Information Management so we didn’t have much programming. However I fully follow your statement that as every professional sportsman need to practice programmers needs to practice as well. Knowledge we gain from school is never enough, especially in such fast developing environment as programming is. As I mentioned, im not programming and I don’t think I will have much free time to invest to learn it. Only part of programming I would like to learn is Visual Basic to write lots of excel Macros. Regarding portals, hard to say as all looks super strange for me – might be because I have never done any programming before so I don’t understand anything what is written there haha.

    ReplyDelete
  12. 1. I have heard about challenges and tasks for IT programmers. It's obvious that you need to showcase your skills to explore your knowledge. I take part in several job interviews where I had to show my skills and solve a different task to improve myself. However, this is not always easy, because some of us get very stressed in such situation, which makes it harder for them to solve trivial tasks.

    2. Unfortunately, I'm not a programmer, although I've been wanting to learn it recently to expand my capabilities. To begin with, I would definitely need to learn the basics in order to solve the task you sent. Unfortunately, at the moment I have no idea how to even get started, and even if I tried to understand it I think it would take me a long time, but on the other hand I will try to solve it and test my abilities. We'll see how it goes for me.

    3. I think these portals are worth to have a look, however, for a layman like me it is worthwhile to learn the basics. I hope that for a good and easy start it is worth using Codewars platform, which can help us to organize our knowledge and learn more about programming. One thing makes me wonder, how did you start? Did you read some articles, watch some tutorials? Where do you advise to start?

    ReplyDelete
  13. I have heard about coding challenges, I think there was one even in our university called Hackathon? But I am not sure about it. I think that everything that is meant to improve your skills is very important in every category. There is also very known thing called InkTober for designers which is a monthly challange for drawing, you get a subject to drawn everyday, unfortunately I never got to the end of it, usually I give up after a week. :D

    I am not programming it is black magic for me (I only know how to build websites using WordPress but everything there is very easy :D ). I have tried studying IT but after six months I quit because of JAVA and math. So I am not going to program anything in my life.

    I think that the portals mentioned are great for people interested in this subject. As for me I would probably just look on them get my mind blown and quit. Also I wish there would be websites like this for graphic designers, but maybe they are I am not very good oriented in stuff like this. :)

    ReplyDelete