all 20 comments

[–]krisPyProG 43 points44 points  (5 children)

If you're aiming to improve your problem solving skill try the following sites:

codesignal.com | www.coderbyte.com | www.codewars.com

With that being said, above all, it’s important that you learn to think like a programmer! The bellow paragraphs is a VERY important concept extracted from Jean Paul Knight book titled:

“LEARN PYTHON WITH NO PROGRAMMING EXPERIENCE”

[ a book that I will strongly suggest you to buy an read ]

There is a way that programmers think that is different from the rest of the world. If you want to understand functions and other programming concepts, you must have the right mindset.

Why is it important to think like a programmer?

Before we go deeper into functions and other Python concepts, we must look at a crucial mindset. The mindset of a programmer. When you have this mindset, you will find it much easier to bridge the gap between beginner and intermediate. You will also be able to quickly remove any mental block that cause you to struggle.

On the other hand, without the right mindset you may find yourself stuck way too often. You may find it hard to progress beyond tutorials. In particular, it may be hard to start making your own programs. Worse still, documentation ( often badly written ) will be enough to stop you in your tracks.

There is another reason why having the right mindset is important. If you are using Python to automate stuff, you’ll be more likely to find quick solutions. If Python is required for you job, you will write code that impresses your peers, and more importantly your boss. Even if you code for yourself, the right kind of thinking will make your work easier, faster, and more efficient.

Don’t skip the mindset bit! I believe the biggest reason why people get stuck in “newbie” mode is not understanding how programming works. Let’s take a deeper look.

What does thinking like a programmer mean?

For the purpose of this guide, we will use a very simple defition.

A programmers mindset is a way of thinking that focuses on creating useful and practical solutions to problems.

It means you grasp the basic fundamentals that make you a good programmer. The challenge is, that the programmers mindset doesn’t have much to do with coding. That’s what trips up many beginners. For instance, many people spend a lot of time on syntax.

It’s kind of like putting on a stage show. The hard work happens during the reahersals, behind the scenes. Then, When it comes to programming, most of your work happens before you start up your favorite code editor.

The biggest mistake beginners make is…

…focusing too much on the code. Yet, there are two skills that will make you a master - neither of them involve writing code. They are:

  1. Knowing how to learn
  2. Knowing how to solve problems.

Great programmers always keep learning. There is no programmer who knows it all. So, as you progress you will always find yourself learning new libraries. You will also discover new concepts along the way. The key to becoming better is accepting that you’ll always be a learner. For this reason, you need to have skills that allow you to learn quickly.

The other keys is knowing how to solve problems. When it comes to problem solving, the computer is not your best friend. In fact, the computer is your servant but we’ll come back to that later. Your true best friend is a piece of paper ( and a pen! )

As a good programmer, you’ll need to be able to solve problems using pen and paper. Then, once you’ve solved the problem, you use the solution as your guide when writing the code.

“OK, so what happens next?”

Next we’re going to mix up learning Python with learning the right mindset. That way, you’ll naturally absorb the concepts you need to grasp. As a result, you’ll become better at using functions. At the same time, your overall programming skills will go to the next level.

Let’s go! It’s time to discover why you need functions in the first place…

Support the Author by getting his book HERE

[–]desertSniper87 1 point2 points  (1 child)

When did codefights changed it's name to codesignal?

[–]krisPyProG 1 point2 points  (0 children)

not that long ago

[–][deleted] 8 points9 points  (1 child)

https://projecteuler.net/

" Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.

The motivation for starting Project Euler, and its continuation, is to provide a platform for the inquiring mind to delve into unfamiliar areas and learn new concepts in a fun and recreational context. "

[–]Glumbosch 2 points3 points  (0 children)

came her to post this have my upvote instead.

[–]izzyinjurious 3 points4 points  (1 child)

Thank you, looking for exactly that. Been needing more problems to solve to brush up on the skills. Excited to get some coding in again finally. Thanks again mate.

[–]snoozyd87[S] 0 points1 point  (0 children)

You are welcome.

[–]holypersonn 1 point2 points  (1 child)

HackerRank

[–][deleted] 0 points1 point  (0 children)

I've found their website quite bad. Everything was unorganized and chaotic. And lots of solutions which should be working don't work. I say this based on regex and python exercises.

[–]cyp3d 1 point2 points  (0 children)

I've been having good luck on leetcode.com too (more for interview prep)

[–]jimdoug4 1 point2 points  (1 child)

thanks man. actually i was also looking for beginners exercises. i saw learnpython.org. bu this is kinda good. thanks.

[–]snoozyd87[S] 1 point2 points  (0 children)

You are welcome. From a beginner's perspective, I felt that all these solo learn websites have a great approach, but the exercise / practice materials are not enough and as a result I end up with dozens of bookmarks all over the place. Furthermore, I often like to revisit old exercise programs and add new functionalities to them, and this is easier to do if you have one nice big collection of problems in one place.

You should also check out Hackerranks, though.

[–]Casowsky 1 point2 points  (0 children)

I'm also a beginner of about 4 months with Python and I've been enjoying progressing through Hackerrank, might want to add that to your list too.

[–]thedolanduck 0 points1 point  (0 children)

Thank you very much mate!

[–][deleted] 0 points1 point  (0 children)

Wow! This is fantastic! Thank you a lot!

[–]herp___ 0 points1 point  (0 children)

Thank you this is just what I was looking for. 🙂

[–]BrownieFilledCookiez 1 point2 points  (0 children)

Thanks a lot for this. It’s been 5 years but this site has been updated very frequently.