Jump to content

How do I learn programming?

shivajikobardan

For eg: Currently I am trying to learn bash shell scripting, text processing using bash etc. But the problem is I don't think I can learn it. Why? Because I don't know programming. In particular, problem solving. I don't know problem solving at all. I try my best but I fail. In the past, I tried learning MERN web development for around 1 year but failed to do so.
So, I am wondering how do I learn programming? Particularly, bash shell scripting. I don't need roadmap but way to learn problem solving.

 

Link to comment
Share on other sites

Link to post
Share on other sites

26 minutes ago, shivajikobardan said:

For eg: Currently I am trying to learn bash shell scripting, text processing using bash etc. But the problem is I don't think I can learn it. Why? Because I don't know programming. In particular, problem solving. I don't know problem solving at all. I try my best but I fail. In the past, I tried learning MERN web development for around 1 year but failed to do so.
So, I am wondering how do I learn programming? Particularly, bash shell scripting. I don't need roadmap but way to learn problem solving.

 

I'm currently planning on learning to code too. I have seen quite a few sites that let you learn like Udemy, CodeAcademy etc, have you looked into these? Are there any schools in your area that offer programming courses?

Spoiler

Chernobyl

AMD FX8350 @ 5GHz | Asus Sabretooth 990FX R2 | 16GB HyperX Savage @1950mhz CL9 | 120GB Kingston SSDNow

EK AMD LTX CSQ | XSPC D5 Dual Bay | Alphacool NexXxoS XT45 240mm & Coolgate Triple HD360

 

Spoiler

Kraken

Intel i5 4670K Bare Die 4.9GHz | ASUS Maximus VII Ranger Z97 | 16GB HyperX Savage 2400MHz | Samsung EVO 250GB

EK Supremecy EVO & EK-MOSFET M7G  | Dual 360mm Rads | Primochill CTR Phase II w/D5 | MSI GTX970 1670MHz/8000MHz

 

Graphic Design Student & Overall Nerd

 

Link to comment
Share on other sites

Link to post
Share on other sites

The best way to learn problem solving is to solve problems. Find a task you want to automate with a shell script, then Google search your way to a solution. Try to understand why the solution works/doesn't work, then work on improving it. Otherwise, there's a ton of online resources to get you started on programming.

Remember to either quote or @mention others, so they are notified of your reply

Link to comment
Share on other sites

Link to post
Share on other sites

the problem with google searching is I'm mostly copying pasting from stackoverflow w/o being able to create that from myself from scratch.

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, shivajikobardan said:

the problem with google searching is I'm mostly copying pasting from stackoverflow w/o being able to create that from myself from scratch.

Try to understand what it is you're copying, break down the code into bitesize peices that make sense and then work out why its working.

Spoiler

Chernobyl

AMD FX8350 @ 5GHz | Asus Sabretooth 990FX R2 | 16GB HyperX Savage @1950mhz CL9 | 120GB Kingston SSDNow

EK AMD LTX CSQ | XSPC D5 Dual Bay | Alphacool NexXxoS XT45 240mm & Coolgate Triple HD360

 

Spoiler

Kraken

Intel i5 4670K Bare Die 4.9GHz | ASUS Maximus VII Ranger Z97 | 16GB HyperX Savage 2400MHz | Samsung EVO 250GB

EK Supremecy EVO & EK-MOSFET M7G  | Dual 360mm Rads | Primochill CTR Phase II w/D5 | MSI GTX970 1670MHz/8000MHz

 

Graphic Design Student & Overall Nerd

 

Link to comment
Share on other sites

Link to post
Share on other sites

that's exactly where my problem lies. the stuffs available in  SO and tuts are too advanced  for me to understand no matter how hard I try to break them.

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, shivajikobardan said:

that's exactly where my problem lies. the stuffs available in  SO and tuts are too advanced  for me to understand no matter how hard I try to break them.

Ok so what language does Bash Shell use?

Spoiler

Chernobyl

AMD FX8350 @ 5GHz | Asus Sabretooth 990FX R2 | 16GB HyperX Savage @1950mhz CL9 | 120GB Kingston SSDNow

EK AMD LTX CSQ | XSPC D5 Dual Bay | Alphacool NexXxoS XT45 240mm & Coolgate Triple HD360

 

Spoiler

Kraken

Intel i5 4670K Bare Die 4.9GHz | ASUS Maximus VII Ranger Z97 | 16GB HyperX Savage 2400MHz | Samsung EVO 250GB

EK Supremecy EVO & EK-MOSFET M7G  | Dual 360mm Rads | Primochill CTR Phase II w/D5 | MSI GTX970 1670MHz/8000MHz

 

Graphic Design Student & Overall Nerd

 

Link to comment
Share on other sites

Link to post
Share on other sites

To me, problem solving is less a skill and more of an attitude of persistence. How determined are you to solve the problem? How effectively are you using the resources available to you? Be that online resources, or people in your life that know more than you. Asking for help can be part of problem solving. Posting on a forum asking someone to point you in the right direction of a solution could be considered problem solving. Get used to using whatever resources you have access to. Hopefully this helps and can be a bit encouraging. I firmly believe anyone can be a good problem solver if they want to and are persistent enough

Link to comment
Share on other sites

Link to post
Share on other sites

I've  not started to learn about bash programming yet. But I guess they use those linux commands.

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, LukesterFire said:

How determined are you to solve the problem? How effectively are you using the resources available to you? Be that online resources, or people in your life that know more than you. Asking for help can be part of problem solving. Posting on a forum asking someone to point you in the right direction of a solution could be considered problem solving. Get used to using whatever resources you have access to. Hopefully this helps and can be a bit encouraging.

Thats a good point to behonest however I disagree with your first point.

 

2 minutes ago, shivajikobardan said:

I've  not started to learn about bash programming yet. But I guess they use those linux commands.

From what I can see on google, Bash is C++ is that correct?

Spoiler

Chernobyl

AMD FX8350 @ 5GHz | Asus Sabretooth 990FX R2 | 16GB HyperX Savage @1950mhz CL9 | 120GB Kingston SSDNow

EK AMD LTX CSQ | XSPC D5 Dual Bay | Alphacool NexXxoS XT45 240mm & Coolgate Triple HD360

 

Spoiler

Kraken

Intel i5 4670K Bare Die 4.9GHz | ASUS Maximus VII Ranger Z97 | 16GB HyperX Savage 2400MHz | Samsung EVO 250GB

EK Supremecy EVO & EK-MOSFET M7G  | Dual 360mm Rads | Primochill CTR Phase II w/D5 | MSI GTX970 1670MHz/8000MHz

 

Graphic Design Student & Overall Nerd

 

Link to comment
Share on other sites

Link to post
Share on other sites

7 minutes ago, Benji_w said:

From what I can see on google, Bash is C++ is that correct?

No. Bash scripts mostly contain terminal commands and can contain additional shell script commands. No relation to C++ whatsoever. The bash shell itself may be written in C++, but you don't need to know anything about C++ to write shell script.

Remember to either quote or @mention others, so they are notified of your reply

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, Eigenvektor said:

No. Bash scripts mostly contain terminal commands and can contain additional shell script commands. No relation to C++ whatsoever. The bash shell itself may be written in C++, but you don't need to know anything about C++ to write shell script.

I was hoping the author would answer that 😉 Part of learning is question and understand everything from the ground up, especially when it comes to coding. In order to use PHP you need to understand basic HTML and CSS to get it to work on a website (might be a bad example but thats from my own personal experience).

Spoiler

Chernobyl

AMD FX8350 @ 5GHz | Asus Sabretooth 990FX R2 | 16GB HyperX Savage @1950mhz CL9 | 120GB Kingston SSDNow

EK AMD LTX CSQ | XSPC D5 Dual Bay | Alphacool NexXxoS XT45 240mm & Coolgate Triple HD360

 

Spoiler

Kraken

Intel i5 4670K Bare Die 4.9GHz | ASUS Maximus VII Ranger Z97 | 16GB HyperX Savage 2400MHz | Samsung EVO 250GB

EK Supremecy EVO & EK-MOSFET M7G  | Dual 360mm Rads | Primochill CTR Phase II w/D5 | MSI GTX970 1670MHz/8000MHz

 

Graphic Design Student & Overall Nerd

 

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, Benji_w said:

I was hoping the author would answer that 😉 Part of learning is question and understand everything from the ground up, especially when it comes to coding. In order to use PHP you need to understand basic HTML and CSS to get it to work on a website (might be a bad example but thats from my own personal experience).

Ah sorry 😅 I wasn't sure if you were genuinly asking or not

Remember to either quote or @mention others, so they are notified of your reply

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, Eigenvektor said:

Ah sorry 😅 I wasn't sure if you were genuinly asking or not

While at college, our tutors pulled the wool over our eyes. They made us research a topic then with as much possible detail, explain it to our peers so they also could fully understand it. It was such a unique way of teaching it still sticks with me 12 years later. I highly reccomend using this approach to learning.

Spoiler

Chernobyl

AMD FX8350 @ 5GHz | Asus Sabretooth 990FX R2 | 16GB HyperX Savage @1950mhz CL9 | 120GB Kingston SSDNow

EK AMD LTX CSQ | XSPC D5 Dual Bay | Alphacool NexXxoS XT45 240mm & Coolgate Triple HD360

 

Spoiler

Kraken

Intel i5 4670K Bare Die 4.9GHz | ASUS Maximus VII Ranger Z97 | 16GB HyperX Savage 2400MHz | Samsung EVO 250GB

EK Supremecy EVO & EK-MOSFET M7G  | Dual 360mm Rads | Primochill CTR Phase II w/D5 | MSI GTX970 1670MHz/8000MHz

 

Graphic Design Student & Overall Nerd

 

Link to comment
Share on other sites

Link to post
Share on other sites

I've been using Cisco's free online courses to teach myself c++ LINK:: https://www.netacad.com/courses/programming
I even started making a tiktaktoe game in C++ that runs in the command prompt to practice what I learn. 
If you want to practice problem solving find problems (or create problems if you're feeling creative like I was) and solve them. If you fail keep trying until you figure it out and don't forget to take breaks when you need them so you don't burn yourself out

Link to comment
Share on other sites

Link to post
Share on other sites

What textbooks did you look at? 

There's probably a library where you can check a textbook on bash out from. Otherwise if you have some money, buying a textbook on bash is a great way to go. 

Link to comment
Share on other sites

Link to post
Share on other sites

The official Raspberry Pi Press, the Magpi make some books that are available for free download online... They are meant for the Raspberry PI OS but often transferable, they have a book on learning how to use the command line too (Linux) 

Link to comment
Share on other sites

Link to post
Share on other sites

I think the best way to learn bash is to be forced to use it. Install any distro on a laptop for instance and just use it. If on windows you can setup WSL2.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×