Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Education Programming

'I Know How To Program, But I Don't Know What To Program' (devdungeon.com) 255

An anonymous reader has shared an interesting article that talks about one of the most common challenges faced by novice developers: "I know how to program, but I don't know what to program." The author of the article also shares his views on some of the most common solutions for that problem: "do programming challenges", "contribute to an open source project", or "make a game." From the post: Doing programming challenges is good mental practice, but they do little to help someone learn how to create a new program. Contributing to an open source project is a step up. You might learn about how a real project is structured and improve your skill with the programming language, but you won't learn much about the full lifecycle of a project. Some projects are very complex too which can be intimidating for a novice. Making a game is another step up. Games are fun! I started by programming games in QBASIC. The same dilemma arises though. "I want to make a game, but I don't know what to make." The author advises these beginners to try rewriting a library which already exists (despite this being considered as a prohibited practice by many). Developers should also not wait to get the "best idea" before they begin writing it, the author adds. From the post: I've seen the same mentality with musicians. Trying to create a masterpiece on their first attempt, putting all their energy into one song and not seeing a bigger picture. The bigger picture being, you will write LOTS of songs over time, not just one!
This discussion has been archived. No new comments can be posted.

'I Know How To Program, But I Don't Know What To Program'

Comments Filter:
  • by Anonymous Coward on Wednesday May 11, 2016 @02:37PM (#52092745)

    Find an old computer science research paper that seems interesting.

    Implement the hell out of it.

    Seriously, most advances in the industry are from expired patents and research that was done in university 20 to 30 years ago.

    • by sims 2 ( 994794 )

      I new verson of something like paperdisk http://www.paperdisk.com/index... [paperdisk.com] would be neat Ive always wondered how much extra data you could store if you used colors too.

      • Colour would be an improvement, but not as much as you might think. CMYK is no problem, but the RGB hues are limited by the quality of the inks/toner, paper, the mixing pattern and print resolution versus dot size...to have a safe error margin you wouldn't want to use intermediate hues, so realistically that's three bits per dot. Since a scanner can't tell a halftone from a faded print it may not be a good idea to vary the print density, though this could be mitigated with reference colour bars, in which ca

    • by skids ( 119237 ) on Thursday May 12, 2016 @12:44AM (#52096113) Homepage

      Yeah there are tons of opportunities to replace naive-but-working code with more sophisticated techniques/algorithms out there.

      I think TFA is right in that rewriting existing code is indeed productive -- but really the reason is not so much practice at writing, but that you are learning the one skill people who "know how to program" do not necessarily have even if they think they do: how to fluently read code, rather than write it. So, with your suggestion, find an academic paper, think where it applies in an OSS project, and go check how that project implements that functionality. See if using those ideas in that spot improves the project.

      In addition it is a good suggestion in that it also builds the skills of taxonomy and research which are needed to avoid wheel re-invention - you can;t avoid it if you do not know the given wheels actually exist.

  • by tombak ( 4436895 ) on Wednesday May 11, 2016 @02:38PM (#52092751)
    Find a small problem that you are in fact facing in your day to day life, and write code that would solve it. Code has to solve real-world problems and there is nothing more satisfying than writing code that solves an actual problem. For example, write a "HELLO WORLD" program; and make it run at boot time, voila! H
    • by mrchaotica ( 681592 ) * on Wednesday May 11, 2016 @02:44PM (#52092813)

      Find a small problem that you are in fact facing in your day to day life, and write code that would solve it.

      All my (computing) problems are either big or already solved. : /

      • by XxtraLarGe ( 551297 ) on Wednesday May 11, 2016 @03:46PM (#52093387) Journal

        Find a small problem that you are in fact facing in your day to day life, and write code that would solve it.

        All my (computing) problems are either big or already solved. : /

        There you go. Write a program that creates small problems for you! ;-)

      • All problems are big when they get solved. Small computing problems were solved back when nobody even heard of computers. In the future they will probably talk about all the easy quantum computing problems that were yet to be solved in the early 21st century.
    • Re: (Score:3, Funny)

      by BlckAdder ( 18469 )
      Because it's an actual problem that my computer does not print 'HELLO WORLD' on bootup?
      • Because it's an actual problem that my computer does not print 'HELLO WORLD' on bootup?

        GP obviously misses that voice that said "WELCOME!" when you logged into AOL in the 90s. :)

    • All of the problems in my day to day life are way bigger than any code could handle.

    • by lgw ( 121541 )

      Some examples I've done that are entirely non-work-related:
      * Automating workflow to transcode DVD images with exactly the settings I want, filtering out titles like copyright warnings.
      * Writing bots for 2D games (which is always more fun than the game)
      * Writing automated character sheets for tabletop RPGs (good excuse to write something with a GUI for once)

      None of these are important problems, even to me, but "a writer writes". It's less about "what do I really need to automate" and more about "what's an e

    • Small problem is the ticket. Scratch your own itch. Anyone who can't think of something they want a computer to do that their computer doesn't already do just isn't thinking very hard.

      And I don't mean something there isn't an app for. There probably is an app for almost everything. But programming isn't really that hard and finding apps among the gazillions is, so it's often easier to just code your own. If and when it breaks in ways that annoy you, it's much easier to fix yourself.

      Of course the real proble

      • Progress is measured in inches. I'm a Mechanical Engineer that knows how to code. Years ago when I started off in industry I would write a script or macro to shave a minute off of my work load. My peers laughed and said "Ha, you only saved a minute, what a waste of time". After a while those minutes add up. A minute a day for a year is 4 hours of savings.

        A minute an hour for a year is 33 hours. If that's a minute 5 of my other co-workers are also doing it means I saved my boss 150 hours a year. 120 '1 minut

  • Open Source (Score:4, Interesting)

    by Thelasko ( 1196535 ) on Wednesday May 11, 2016 @02:39PM (#52092761) Journal
    Contributing to open source always seemed intimidating as a novice. I'm too afraid I'd wreck the code or introduce bugs. Basically create more problems than solutions.

    I stick to my own little scripts for my specific needs, knowing that the code is clumsy.
    • by Okian Warrior ( 537106 ) on Wednesday May 11, 2016 @02:52PM (#52092919) Homepage Journal

      Contributing to open source always seemed intimidating as a novice. I'm too afraid I'd wreck the code or introduce bugs. Basically create more problems than solutions.

      Then you should contribute to the linux kernel.

      Linus always takes an encouraging and tolerant attitude towards new users, especially ones who make mistakes.

      If you want to learn to code, there's no better place to start than the linux kernel.

      • Re: (Score:2, Insightful)

        by Anonymous Coward

        You are a very bad man.

      • Re:Open Source (Score:5, Interesting)

        by allo ( 1728082 ) on Wednesday May 11, 2016 @03:49PM (#52093413)

        Don't misunderstand Torvalds. He has a nice attitude to beginners. Just not to idiots (which refuse to take advice) or beginners, who insist to do it their way without understanding why it's done another way. If you're a dick, Torvalds will tell you. If you ask a dumb question, he will try to help (or at least ignore you).

      • Linus always takes an encouraging and tolerant attitude towards new users, especially ones who make mistakes.

        Nothing like trial by fire to build up my chops.

        Thanks!

    • If you can get feedback and correction, it's one of the most efficient ways to mass-learn; if you're just digging on your own and your self-activation is weak, it's one of the best ways to quit programming.

      As per Deliberate Practice and modern cognitive science, expertise is developed by a process in which a student takes action which produces errors, then learns from those errors. Deliberate Practice is the most efficient form of practice: it targets specific technical skills (design patterns, integra

    • Not to mention the less-than-welcoming nature of coders working on a existing project. For all its ostensible openness, OSS is filled to the brim with coders suffering from "it's my party and no one else is invited" syndrome.

  • by Anonymous Coward on Wednesday May 11, 2016 @02:39PM (#52092765)

    I know how to post a comment, but I don't know what to say.

  • This (Score:5, Interesting)

    by just_another_sean ( 919159 ) on Wednesday May 11, 2016 @02:40PM (#52092769) Journal

    The author advises these beginners to try rewriting a library which already exists (despite this being considered as a prohibited practice by many).

    This is how I learned a lot about Perl, C, C++ and to a much lesser extent JavaScript. I wrote (crappy) web frameworks in Perl, front ends for MySQL in C and even tried reinventing concepts from the STL in C++. Not one of my pet projects ended up in production systems for very long, if ever. I simply did them to scratch an itch and help myself understand the underlying principles. My understanding of Perl and PHP frameworks improved immensely and I learned it wasn't nearly as hard as I thought to get under the hood and learn when something wasn't behaving the way I expected it too. Implementing STL dupes help me actually be able to parse Bjarne Stroustrup's books on C++ and in general gave me a much deeper understanding of programming in various languages. Was I able to make better tools than a team of experts working on something together for years? Hell no! Just improved my ability to understand and use their work.

    It's like learning assembly to understand how computers work, you're probably not going to do much of it in the real world but it will help you more than you think when you develop that level of understanding.

    • What I want to know is who thinks rewriting a library is prohibited. Who is spreading that kind of misinformation?
      • Well, again Perl, I read as much of Larry Wall''s writing as I could over the years. The three virtues of programming he espouses are hubris, laziness and impatience.

        I think this one falls under the laziness category. Don't spend time solving problems others have already solved. Modern Perl and CPAN really emphasize too. And of course it translates well to other languages and even everyday things that may not even be related to programming.

        On the other hand I believe this oversimplifies things a bit. If a l

        • Don't spend time solving problems others have already solved.

          First, it is a great learning experience to rewrite a library or parts of it. If you have the source you can compare what you did and what kinds of error checking etc. you didn't think of. Even without the source, getting what you write to reproduce the results is good practice at reverse engineering.

          But second, how does this in any way relate to the idea that rewriting a library is PROHIBITED? It doesn't. Larry Wall's (and the general perl idea of not recreating the wheel when it isn't necessary) isn't a

          • What he probably means is closer to 'reinventing/NIH considered harmful'. If you start from scratch, you are bound to make many of the same mistakes the original developers made. Also you will only have a vague idea of the actual requirements of the project, which will waste a lot of your (time) budget on redesign. Even if you are the author of the original, once some time has passed you most probably don't have any idea what most of the code does - weird corner cases and bugfixes everywhere, with no recoll

            • If you start from scratch, you are bound to make many of the same mistakes the original developers made.

              Where better to make those mistakes than in your own attempt at duplicating a library? You learn from those. That's why rewriting a library can be a very good learning experience.

              Rewriting such a project should therefore, within reason, be avoided if at all possible -

              Like I said, rewriting a library doesn't mean trying to produce a new, production version of a library, it means writing your own version. Even if you never use it for your own projects.

              - once you actually start with it, you really don't know where it will take you.

              It will most likely take you to a place of better understanding of the programming language you think you know, and a much better understanding of

    • This is why there are boat loads of arkanoid and space invaders clones all over the internet someone learning for the first time or breaking in a new language.

    • The author advises these beginners to try rewriting a library which already exists (despite this being considered as a prohibited practice by many).

      This is how I learned a lot about Perl, C, C++ and to a much lesser extent JavaScript

      This was my second course is computer science after the introductory C++ course. We basically had to rewrite the STL, implementing vectors, linked lists, double-linked lists, etc. It was a very good exercise and really made you have to think about memory management, the proper order to do things in, etc. Assembly was a real grind though. I have tons of respect for anyone who can write assembly. It was interesting learning how to tweak your programs with it, taking advantage of how much time certain operatio

      • Assembly was a real grind though.

        The best assembly language to learn the basics of optimization was the Cyber 6500 system. It had 60-bit words, and 15, 30, and 60 bit instructions. A 15, 30, 30 sequence would waste at least 15 bits since the second thirty could not occupy the remaining 15 bits of the first word. A sequence of 15, 60, 15, 60 ... would waste 45 bits for each pair.

        And knowing assembly is really good for helping to learn languages like C. I learned 68000 assembly language while learning C -- I would write some C and have the

  • Try an internship (Score:4, Interesting)

    by schneidafunk ( 795759 ) on Wednesday May 11, 2016 @02:45PM (#52092821)

    For me, I've learned more from on job experience than I did studying computer science at college. You get paid to learn and it also eliminates the "I don't know what to program" question.

    • Dude, get with the times. Nobody today gets paid on an internship. And you don't learn jack. Essentially, you're a slave and in return you can write something on your resume.

      Not that it does jack for you, since what you learned can be done by the next poor idiot who needs an internship, just for free.

      • Except the intern I am paying and teaching, but maybe I am getting old. I can't justify having someone work for me and not pay them, especially since I am making money off him and expect deadlines to be met.

        For the record, I had two paid internships while I was in college and both were above minimum wage in computer science industry. I found them through my college, which offered a co-op program: https://en.wikipedia.org/wiki/... [wikipedia.org]

      • Actually, there are these CRAZY things called "paid internships" I know I know, since you didn't have one they can't exist. But, my friend, they do exist. And yes, the menial tasks you'll be doing anyone can do..... The internship is not about getting hired on to do that job, it's about getting practical experience and moving forward. It's not even about resume fodder, it's about on the job experience.
      • by AuMatar ( 183847 )

        What planet do you come from? I've never even heard of an unpaid internship in programming. Hell the interns make better money than juniors in some companies- they work fewer hours and generally have housing paid for in addition to almost as much cash.

    • It's funny everyone is responding to the implicit flaw, but nobody is calling it out: "I know how to program, but not what to program" no, you're at a point where you know something about programming, but not how to program.

      I know like 30 programming languages; I know about C#; I know design patterns; I know architecture; I know how to decouple my code and why; and I've developed lots of targeted strategies to solve specific implementation problems in a game I'm programming in Unity 3D. I don't know *ho

  • by anyaristow ( 1448609 ) on Wednesday May 11, 2016 @02:45PM (#52092825)

    If you're looking for a project to demonstrate your ability to do the work for a living, don't write a game. Not that a game won't demonstrate useful coding skills, but the bigger skill you want to demonstrate is that you are able to solve problems. A game is a self-directed problem. You have not demonstrated that you can take someone else's requirements, communicate with them, and solve their problem. You haven't shown that you can work with or for other people.

    Unless the game is for someone else, but then it still looks like you have to be entertained to be motivated.

    • Re: (Score:3, Interesting)

      by Anonymous Coward

      If the game is in Java, then it's the opposite! We seek out Java devs with game experience since they're typically better at performance, multi-threading, and memory management than even corporate Java devs with over a decade of experience. Since hiring a team of five former game developers in Oct 2013, the 90% response time for our backend has decreased by nearly 50%. Our customers have been very happy with the performance improvements.

      • by pjt33 ( 739471 )

        As a former professional Java game developer myself I'm loath to cast doubt on your anecdote, but I do have to ask: how much of that speedup was due to hardware upgrades?

    • by GuB-42 ( 2483988 )

      If you like games, then write a game, do it!

      Actually doing a playable game from start to finish is a lot of problem solving.

      For example, let's say you are making a simple Touhou style shoot'em up. It is the kind of game that can be made by one person. In fact, all Touhou games are made by one person. You need to manage inputs, sprites, collisions, manage timing, etc... Without this there is simply no game at all. You will probably want to make the game interesting too, it means diversity in enemies and patt

  • by corychristison ( 951993 ) on Wednesday May 11, 2016 @02:46PM (#52092827)

    I have the opposite problem. I have a dozen good ideas (and many more simple/fun ideas), just not the time to do it. I program for work and for fun. I find it stimulating and exciting to solve complex problems through programming.

    Learning to start from scratch is a hard thing to overcome. Many of the students studying CS are given a task, and a bit of direction on how to complete it... typically given a framework to work with. They are never pushed to think outside of the box and build something from scratch.

    Once you get past the very basic fundamentals of how to manipulate data the world is your oyster. You can build anything if you put your mind to it, even in high level languages like Python, JS, PHP, etc. whatever the kids are learning these days.

    • by slapout ( 93640 )

      Maybe you could make a website to sell your ideas to other programmers...if you had the time.

  • Another suggestion (Score:5, Insightful)

    by DFDumont ( 19326 ) on Wednesday May 11, 2016 @02:46PM (#52092839)

    Find a problem and solve it. Your first (few) programs don't have to be full on applications or games. They just have to solve a simple problem you or someone else is having. Case in point, I am a networking professional (CCIE #12981). I run into things like, "what is the current inventory of devices on the network?" So I wrote a 'script' which does what I would do manually. It logs into a 'seed' device using provided credentials, downloads information like serialization and addressing, and then figures out connected devices from there. Newly discovered devices are then submitted to the same task. Problem solved. In another effort, I was working for a firm that sold a particular service and our back-office documentation to fulfill the order was so cumbersome that the probability for error was a statistical certainty. So I wrote some VBA inside a spreadsheet that took the metrics form the customer, and produced the requisite documents directly.
    Find a problem. Solve it; simply, directly, efficiently. That will give you experience AND provide a useful output.

  • Well... (Score:5, Funny)

    by Black Parrot ( 19622 ) on Wednesday May 11, 2016 @02:47PM (#52092849)

    we need new Hello World! programs for all those recently discovered planets.

    • That's a *HORRIBLE* idea. You start thinking you can write that program, then generalization takes you down the internationalization/localization route, then you learn about character sets [joelonsoftware.com], font design considerations for new scripts, the political/international/interplanetary aspects of character encodings, and ... down that way lies madness. I think I need to lie down now.

  • by i_ate_god ( 899684 ) on Wednesday May 11, 2016 @02:51PM (#52092891)

    I wanted better music for a video game I play, but I wanted that music to be context sensitive. I found a log file in the game's directory. Figuring that cross platform would be useful as well, I now had the motivation to learn C++ via the Qt framework.

    I wanted my living room lights to dim when I play a movie automatically. I use kodi. I now know how to make Kodi plugins.

    I wanted something that reports the vitals of my various computers to a central message queue. While I wrote a linux reporter in python, I wrote the windows reporter in C# and was a great avenue to learn c#. As well I learned all about the amqp protocol.

    Don't solve problems that already exist, don't try to make the NEXT GREAT THING, just identify things you want personally, figure out how to make it, and worry about trying to market it later.

  • I know exactly what to code, but I have no idea how.
    Seriously.

    During my free time, I design a game. Background, lore, game mechanics, formulas, skill forest, greater universe, etc. Implementing it? THE showstopper.
    So... anyone who can code but has no idea what, come to me and I'll give you plenty to code - and it's gonna be fun.

    • I have the other side of your problem: a (beginner) team together that wants to make a video game, but no good ideas of what to make!
      • Make a modern Transport Tycoon or Railroad Tycoon. You know, with 3D graphics, something like the latest SimCity or Cities:Skylines, but with the Tycoon gameplay. There are at least two good Rollercoaster Tycoon variants coming out this year, but nothing for transport enthusiasts.

      • Well, there you go:

        • Get in touch with parent poster
        • Get in touch with your team
        • Charge each of them to put them in touch with the other one
        • Profit!
      • Let's get in touch, then.
        My e-mail address is my nickname at gmail.

  • by Arkh89 ( 2870391 ) on Wednesday May 11, 2016 @02:56PM (#52092965)

    But I don't have the time to program...

  • I can program too and I'm no n00b.

    But I have ideas for roughly 200 Projects and programs in store. Definitely enough to keep 10 teams of 5 to 10 people going for a few years. I've got ~30 Projects started and only one or two are the real biggies.

    Here are some ideas, if you're struggling with that phase:

    - Successor to Email. The world needs it. (Hard Crypto and discussions built in of course)

    - zero-fuss x-plattform namecoin dns GUI

    - zero-fuss x-plattform namecoin Server

    - Web gl FOSS distributed Eve Online ripp, cheat-proof cryptocurrency integrated

    - total WordPress redo with clean architecture, webbased ide and CASE Tool/object Modeler built in

    - FOSS Tribes 2 ripp

    - FOSS MechWarrior ripp

    - FOSS x-plattform Git GUI that doesn't suck

    - Rebranded Gimp with single window mode and others sane default configs

    - non-shitty FOSS distributed Facebook replacement Server + non-shitty Web gui (hard crypto auth and anonymity built) ... Please do NOT build this with some bizar scripting PL or LAMP contraption - this is NO place for LAMP!

    - While we're at it: All webappserverstacks are shite. We need a LAMP Killer. Some neat x-plattform appserver in C++14 with an all-out Web Admin UI built in, Modeler included.... Build the WP replacement from above with that.

    - zero-fuss x-plattform Crypto Chat Messenger. Like Xabber but in finished. And for Desktops too.

    I could go on and on but you get the idea. Not knowing what to program is a Problem I don't understand ... Seriously.

  • by Hognoxious ( 631665 ) on Wednesday May 11, 2016 @02:59PM (#52093009) Homepage Journal

    Rewrite slashdot to either support unicode properly, or (preferably) not support it properly.

  • by ErichTheRed ( 39327 ) on Wednesday May 11, 2016 @03:01PM (#52093035)

    I'm a systems guy, so most of my development is automation focused (scripts, really simple programs, etc.) The thing that I've noticed about _application_ development is that it's much harder these days to get something functional going right off the bat. Back in the old BASIC days with simple console output it was pretty easy to write a program that both did something tangible and was simple enough to be instructional. Now we have the twofold problem of massive abstraction and having to write against huge SDKs and frameworks so that we don't constantly reinvent everything. That line between writing actual instructions and just connecting huge Lego pieces is getting blurrier every day.

    I've always wanted to expand my knowledge of software development, but the problem in this article is very real. There's tons of backstory required to write simple Windows desktop applications, for example, even in the managed languages.

  • Get a job (Score:4, Interesting)

    by gnu-sucks ( 561404 ) on Wednesday May 11, 2016 @03:02PM (#52093043) Journal

    Seriously, get a beginner-level job. Write some code for cheap, even for free. Maybe meet a mentor or two while you're at it.

    Or if you're a student, march into some department's office that needs programmers (not comp-sci, but something like aerospace engineering where they need programmers and they can't program that well). Offer to help with some professor's project and see where it takes you.

    • This isn't a bad idea. I just took an Applied Aerodynamics course where the instructor gave us some software he created...he kept touting it's user-friendliness and whatnot...

      To solve different systems, you have to change the values in the code, and recompile. This is not a user interface. To top it off, he didn't know how to begin a Visual Studio project without precompiled headers, and several class sessions were spent troubleshooting this for various students.

      I took the code, rewrote it in Java, am b

  • In learning programming, you had to use a bunch of programming tools (like text editors for example) and discovered they were not optimal to your way of working. So write your own. A quick Google search will show there are almost as many text editors out there as there are programmers. 99% of them have an installed base of exactly one; the person who programmed it. But that's OK, you created a tool that works exactly the way you want it to. Now move on to the next problem. Sometimes the solution suits
    • Or like I've done, develop tools that help you do things that are outside of the programming craft. Not only gives you the satisfaction of designing and programming something ~unique, but also something very personal.
  • by LQ ( 188043 ) on Wednesday May 11, 2016 @03:06PM (#52093077)
    You might as well say you know how to touch type but are staring at a blank sheet of paper. Programming is a tool for solving problems. You need to have a problem domain you're interested in (or somebody is paying you to be). Everything else is reinventing the wheel for practice.
  • by Rob Riggs ( 6418 ) on Wednesday May 11, 2016 @03:08PM (#52093099) Homepage Journal
    Write what your boss tells you to write.
    • by Pascoea ( 968200 )

      Write what your boss tells you to write.

      This. (Slightly adjusted) Write what your boss will let you write. I learned to code in college, got an IT/Sales job at small company that ran multiple "arms" of business. They had a small intranet that their IT guy had wrote, but didn't have a decent scheduling application, so I suggested they let me write one. It was a great learning experience. Same thing in the next job. Got hired as an IT guy/Project Manager, they were still using paper time sheets to collect time so I suggested they let me write

  • Most people in America know how to write, but that does not make them novelists. Many know how to use a hammer and a saw, but that does not make them a carpenter. Likewise, knowing how to code does not make one a programmer, nor will it guarantee success in life.

    With this push on programming, we will simply turn what was once a respectable profession held by those with a real aptitude into the next classification of menial labor. That might be good for business, but not for the individual if they are tryi

  • Find a hot selling app for the iPhone that doesn't exist on Android and port it over. Or vice versa. You might even make some money in the process!

    • by tepples ( 727027 )

      The hard part of porting a popular app from one platform to another isn't the programming part as much as the negotiating a license part.

      • I hesitate to comment sometimes since I unfortunately lack the wherewithal to spell everything out in excruciating detail but I'll leave the exercise of "port the app without cloning it to the point of requiring the negotiation of a license" to the gentle reader.

  • I am confused.

    How does one learn to write software without first enjoying it? Are there people out there who can play the violin, but don't know what to play? Why did they pick it up in the first place? If anyone out there knows woodworking but doesn't know what to build, or can do electronics but doesn't know what they want to wire - please email me and I will put you to good work.

    How does someone learn a skill, particularly a fairly academic one, without having a desire to do so? Is this some kind of

    • For myself, The Project I want to create is currently beyond my skills. I've done a R/C car programmed in assembly to not be R/C and to keep itself away from walls. I've done serial communication to monitor temperature of a brewery bright tank in C. I've done a single-seat car with self-driving capability in C++. I did a text-based adventure game in C. I'll need other projects to build me up to where I want to be, but I'd like them to be something interesting.

      I'm currently working on putting a team togeth

  • I started learning to program around 1987, and got my first job in 1998. After about a month of real work a light came on and I realized I enjoyed having somebody else who knew what I should program. That doesn't keep me from still writing programs I really want, but it is very rewarding for me meeting people's needs by writing the programs they envision.

  • Particularly in a non-technology company, like insurance. They'll give you LOTS to program, probably in PL-SQL.

  • Ask your manager and quit bothering the rest of us here. Keeping you productive is his responsibility, not ours.
  • See writers block, blank canvas syndrome, musicians block... Sometimes it is intimidating to take that first creative step. Just jump. Once you start you often find you cannot stop.
  • I have been programming since 1987.

    My advice to you is to find a free software project and start fixing bugs.

    [Aside from poor communication skills] fixing bugs is the skill that programmers are the worst at, and help with fixing bugs will make you well liked. Just be nice about it. All software has bugs, and no malice is ever intended by buggy software. All software is buggy, and the most experienced programmers will own up to their bugs and be happy that you're volunteering your time to help fix them.

  • It doesn't matter what it is, or how it fits into anything, just identify something which annoys you and make it better.

    Curtains don't open when you wake up...
    Traffic Lights seems I'll times...
    Having to specify times on the microwave when it can easily measure weight...
    Windows wants to update to latest version...
    KDE doesn't integrate with Office 365...
    Your Company is using Office 365...
    The Digital Sign-age at the Airport has a brief 0.5s black frame between videos...
    I can get a lift anywhere I want b

  • by Hevel-Varik ( 2700923 ) on Wednesday May 11, 2016 @05:09PM (#52094005)

    I'm self taught and have the same problem. My solution was and is to keep reading. I rarely do exercises and I can't bring myself to code to no end, because of
    opportunity costs, I've done some stuff here and there as I needed (scripting mostly) and just kept reading. Read textbooks, OS stuff, computer architecture, algorithms and math. The problem is that the stuff I need has been done and is at my fingertips, and though I could re-invent a wheel or re-implement a library, I learn well through reading books, and books open up new vistas and raise my ceiling. I've always thought, that when the time comes, I'll have a good enough background to go deeply into what ever I'm being paid to do.

    If you are looking do it for a living, this method can if fact work. I didn't know that until recently.

    I had been working in app support when started learning this stuff, after a couple of years I got access to the code base and would read it to solve bugs that hit the help desk or answer obscure questions about how things worked when we got them, at some point I felt confident to ask for some write access and a mandate to spend time working on stuff. It took a long time to get that but at some point it happened and now, guess what, I am professional programmer. I am still reading though. Now I see that the lack of practice didn't hurt me at all. Sure I had look up syntax, but the IDE either writes or reviews all that stuff for you and unless you are thick it seeps in after a while.

    Learning by doing is critical but if you only learn by doing you will end up learning very little (unless you have much more time than I do). You'll get the practice when you'll need it and you'll get good quickly if you have the right background.

    so if my experience speaks to anyone out there, try to get a job in support, a stones throw away from the development. As soon as you can read code, try to get read access to the code base. When you are comfortable, agitate appropriately for some write responsibilities in down time, even for no extra pay.

  • (Comment) For all the predictions of AIs taking over programming, this is about where they are, and will be, for the foreseeable future.

    If you want to rewrite a library, then you can gather lots of attention for yourself by recreating a GPL library (with mods/improvements, of course) and making it BSD: readline would be a good example. The best part is that the ones who won't be wanting to tar and feather you are also the ones who might actually pay you.

  • Once comfortable with your programming language of choice (for example, Python) seek out API libraries for the language that are geared to a second interest, such as graphics, user interfaces, math, maps, needlepoint patterns, or whatever. My limited knowledge of (but great interest in) music has been enhanced by digging through the PythonInMusic wiki, plus studying the excellent book (with associated code library) "Making Music with Computers" by Bill Manaris ISBN-13 9781439867914. Rummage around on the

For God's sake, stop researching for a while and begin to think!

Working...