I have started learning to program by visiting Codecademy for Python and taking an intro to programming class using C. I am keeping up with both, and although I have only written simple programs, it still excites me to run the code and see it output the day I designed it.

My goal is to make games and eventually get a job in computer forensics, unless I turn out to have some talent for making games, or another oppurtinty arises (natch).

So, how long did any of you take to become decent, or to the point where you felt you had enough knowledge to start building useful programs that you could rely on everyday?

I would also appreciate any study habits that you felt were necessary to get to the point you are now, plus any tips.

Dani AI

Generated

For a practical answer to 's question about how long it takes to become "fluent", treat fluency as a set of measurable milestones rather than a single finish line. Different kinds of fluency exist: writing small scripts reliably, delivering a complete tool, or producing production-quality code for a specific domain. A compact roadmap and repeatable habits produce steady, verifiable progress.

Typical milestone ranges (with deliberate, regular practice): 1-3 months — comfortable with core syntax, basic I/O and control flow; 3-6 months — finish several small end-to-end projects and start using libraries effectively; 6-12 months — create tools reliable enough for daily use; 1-2 years — solve unfamiliar problems confidently and learn patterns quickly. Deep domain expertise or production-grade mastery usually requires additional years. Consistency and focused projects beat scattered tutorial-hopping.

Concrete study habits and a simple workflow shorten the path: short daily practice sessions, one focused project at a time, read and refactor others' code, write tests, and use source control. Work in vertical slices: implement one tiny feature, add a test, refactor, then iterate. Example test-driven fragment:

def square(n):
    return n * n

def test_square():
    assert square(4) == 16

That micro-cycle builds habits for thinking about requirements, edge cases, and regression prevention. Keep a tiny checklist for each project: README, automated tests, a few meaningful commits, and a deployable or runnable artifact.

Echoing , picking a primary language early reduces context switching; community support matters, as implied. Useful progress indicators are shipped projects, readable code, quicker debugging, and fewer surprises when extending features. Measured, goal-driven practice converts early excitement into dependable, long-term fluency.

Recommended Answers

All 2 Replies

...informative post...attractive.....thanks for this post..

When I was younger I could learn several languages at a time, but now I'm finding it a little more of a challenge. I had some extensive surgery for a disease I am well and truly defeating, and various challenges keep me focused. So, that would be my first suggestion... no, not to get a disease, but have a goal to keep you focused.

I thought that because I couldn't decide between C++ and Python that I would learn them both. But I think the meds are slowing my thinking. Because I know that I have to drop one of those languages I'm in a divide by zero quandary as I like them both. So, my next suggestion is to be decisive. Have a definite routine for learning and remember that you are only human.

Finally, make sure you get good support, find a forum where you will learn a lot. So, my last piece of advice would be to visit these forums regularly.

:-D

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.