Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>You've got a lot of things to learn. I won't give you details, but as someone who's done unix and c/c++ development for a couple decades now I'll try to give you some topics to start with.</p> <p>My main advice is to start experimenting. Write the most trivial program you can in C or C++ (something that prints "Hello there, world!" is traditional) and figure out how to compile and run it from the command line. Then, once you've got a compiled version, start it up under the debugger and play around with breakpoints, printing expressions, etc, etc. Once you've got this simplest program up and running and you sort of understand what the debugger is telling you, add a class, function, struct, or whatever else feels like a good small step and go through the cycle again. You'll proceed much faster this way than if you start with a very large program.</p> <p>Still at a very high level, here are a handful of topics you'll need to figure out at least a bit about. Note that the "learn by starting small" approach works well for any of the topics below.</p> <ul> <li>Running <code>g++</code>: it has pretty good online documentation for the command line syntax, and although you're bound to find it intimidating at first, try to look for the simplest starting point.</li> <li>Find a text editor to use. <code>Vim</code> and <code>emacs</code> are traditional (and very very powerful) but both have a relatively steep learning curve. If you have someone around to help you, that's so much the better. There are other alternatives, but as an <code>emacs</code> user myself, I'm afraid I'm not that familiar with them.</li> <li>Get familiar with <code>gdb</code>. It's an incredibly powerful tool for understanding your program. Again, it has extensive online documentation that will repay close reading.</li> <li>Some familiarity with standard unix commands will be useful: <code>ls</code>, <code>cd</code>, and moving basics of the navigating unix directories; <code>grep</code> for quickly searching source files.</li> <li>You'll have to get used to the <em>command line</em> approach versus the <em>ide approach</em>. The former is the traditional unix developer model, where you put together the operations you want from a collection of other tools, rather than having the ide hide most of this knowledge from you. </li> </ul> <p>If your project is multi-file, and especially if it's a full-semester project, you might also consider learning something about the following topics.</p> <ul> <li><code>Make</code> is a tool for describing how to compile and link a multi-file project so that you don't have to remember how to do it by hand each time. <code>Make</code>, unfortunately, has a well-deserved reputation for being tricky to use, but this is mostly true in very large projects spanning multiple directories, and there are probably good simple examples online.</li> <li>I would strongly consider making use of a source code control system such as <code>git</code> or <code>hg</code>, even for a few relatively small project. It's so much safer to have an archived version of what you've done so that you can back up quickly. Both <code>git</code> and <code>hg</code> are overkill for a small one-shot project, but they are worth learning on their own. Conventional wisdom as I understand it today is that they're very similar in philosophy and core functionality, but that <code>hg</code> is definitely a bit more consistent at the command line level, and therefore easier to start with.</li> </ul> <p>I suspect this is rather intimidating, especially if you've got effectively no exposure to a unix command environment before. I re-emphasize my first piece of advice above: learn by starting simple and experimenting. This minimizes the amount of new stuff you're having to wrap your head around at any given point in time.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload