How do I improve my programming/computational skills?

  • Thread starter Occada
  • Start date
  • Tags
    Skills
In summary: a book on algorithms and data structuresa book on programming languagesa book on data structures and database theorya book on game programminga book on graphics programminga book on artificial intelligencea book on software development
  • #1
Occada
3
0
Hello PF,

I've been doing some programming problems on Project Euler and Hacker Rank and I find that I struggle with them (not necessarily with the coding/implementation, but rather formulating a solution). I've been able to solve ~50 PE problems (mostly all the easier problems) and only 1-2 HR problems.

How should I go about improving my skills in solving these types of problems?
 
Technology news on Phys.org
  • #2
Practice.
Get someone to teach you.
Practice some more.
 
  • #3
Thank you for your response.

Would it be a good idea to just spend a good amount of time on single problem and see if I can form a solution from researching the background of the problem?
 
  • #4
Depends on the problem - are you self-teaching?
Programming courses spend a lot of time on core skills and concepts so students have the tools to tackle problems set later.

It's quite difficult to troubleshoot your own learning - the spectator sees more of the game.
If you are self teaching you should find a tutor to help you over the places where you get stuck.

Where you get stuck in a course, go back over the core concepts that are presented in the few lessons before the problem was presented. Work backwards until you find something relevant.
 
  • #5
I think it's a case of the "the more you know the more you know". I struggle with plenty of the PE problems, but sometimes I come back to one a few months later with fresh ideas after working on other things and manage a solution.

Time invested in a book on algorithms and data structures is well invested.

There's a lot to be said for banging your head against a single problem for a good long time. My best learning has been a result of just that. Why doesn't it work? Strugglestrugglestrugglestruggle... OK fixed that bit, now it still doesn't work, why? Strugglestrugglestruggle. OK, getting there, now this thing, etc ... You learn a lot about your programming language of choice that way too, it forces you to really nut out what's happening at a low level.
 
  • #6
Almost forgot... once the basics are down, join a project.
 
  • #7
Simon Bridge said:
Depends on the problem - are you self-teaching?
Programming courses spend a lot of time on core skills and concepts so students have the tools to tackle problems set later.

It's quite difficult to troubleshoot your own learning - the spectator sees more of the game.
If you are self teaching you should find a tutor to help you over the places where you get stuck.

Where you get stuck in a course, go back over the core concepts that are presented in the few lessons before the problem was presented. Work backwards until you find something relevant.

Well, the only programming course I have taken is APCS in high school (this year) and I did really well in it. And a little bit before this school year I've been working on these types of problems.

Adyssa said:
I think it's a case of the "the more you know the more you know". I struggle with plenty of the PE problems, but sometimes I come back to one a few months later with fresh ideas after working on other things and manage a solution.

Time invested in a book on algorithms and data structures is well invested.

That's kind of the approach I've been going with, but I haven't been progressing much, but I guess I just need a more variety of things to work on.

Do you have any recommendations on books?

Simon Bridge said:
Almost forgot... once the basics are down, join a project.

I've been thinking about this, but what level of knowledge/skills do you think would suffice (rather wide question but I'm really unsure where I stand)?
 
  • #8
Project Euler looks very interesting, didn't know it existed. I wish I had a list of such problems when I was 15... But although it is great from a problem solving perspective, they will not teach you good programming, especially when you want to learn about object oriented programming and managing larger projects (PE problems can be solved with small pieces of code). As Simon Bridge already mentioned, join a project on sourceforge, GIT or wherever... or start your own project, creating a small(!) game or some math/physics project.
 
  • #9
Check ot the Open Source Physics website. OSP is a collection of classes written in java designed to facilitate writing physics based computer simulations. They provide eclipse workspaces with many working examples.

www.compadre.org/osp

To get good at programming you need to look at good examples, perhaps even improve them or use them as models for your own programs. OO programming is fraught with difficulties mostly stemming from the various design patterns used and tested by programmers. Learn about these design patterns. (the most famous is Model-View-Controller and there are many more)

OSP uses a couple of design patterns for coding differential equations into the computer simulation and provide display classes to chart and show 2D or 3D rendering of your objects.

Also get familiar with an IDE like Eclipse(eclipse.org) or NetBeans(netbeans.org) and if these seem too difficult look at BlueJ (bluej.org). An IDE can help check your code as you write it and can help look up methods to call (. after the object methods list pops up) and many of good coding and debug tools.
 
Last edited:

1. How do I get started with learning programming?

To improve your programming skills, the first step is to choose a programming language and familiarize yourself with its syntax and basic concepts. You can start with online tutorials, books, or classes to get a solid foundation. It's also helpful to practice coding regularly and work on projects to apply your knowledge.

2. How can I become a better problem solver in programming?

To improve your problem-solving skills in programming, it's important to break down complex problems into smaller, manageable parts. Practice breaking down problems into algorithms, and use techniques like pseudocode to plan out your solution before writing actual code. It's also helpful to work on challenging problems and to learn from your mistakes.

3. What are some resources to help me improve my programming skills?

There are many resources available to help you improve your programming skills, including online courses, coding bootcamps, coding challenges, and programming communities. You can also learn from open-source projects and collaborate with other programmers to gain experience and knowledge.

4. How can I stay updated with new programming languages and technologies?

To stay updated with new programming languages and technologies, it's important to actively seek out resources and information. Follow industry blogs and websites, attend conferences and workshops, and participate in online communities. It's also helpful to be open to learning new languages and technologies, as they can expand your skill set and make you a more versatile programmer.

5. What are some strategies for improving my coding speed and efficiency?

To improve your coding speed and efficiency, it's important to practice regularly and to familiarize yourself with the tools and shortcuts available in your preferred programming language. It's also helpful to break down complex tasks into smaller chunks, and to learn how to debug and troubleshoot efficiently. Lastly, don't be afraid to ask for help or collaborate with others to find more efficient solutions.

Similar threads

  • Programming and Computer Science
Replies
16
Views
1K
  • Programming and Computer Science
Replies
33
Views
2K
  • Programming and Computer Science
Replies
1
Views
728
  • Programming and Computer Science
Replies
8
Views
878
  • Programming and Computer Science
Replies
11
Views
1K
Replies
1
Views
49
  • Programming and Computer Science
Replies
3
Views
864
  • Programming and Computer Science
4
Replies
107
Views
5K
  • Programming and Computer Science
2
Replies
43
Views
4K
  • Programming and Computer Science
Replies
14
Views
3K
Back
Top