628 lines
27 KiB
HTML
628 lines
27 KiB
HTML
+++
|
|
type = "article"
|
|
title = "Learning to Program with Haiku"
|
|
date = "2010-05-26T00:59:47.000Z"
|
|
tags = []
|
|
+++
|
|
|
|
<h1>Lessons by DarkWyrm</h1>
|
|
<span style="float:right;"><img
|
|
src="/files/images/ISBN_978-0-557-53969-7.jpg"
|
|
alt="Learning to Program with Haiku"
|
|
title="Learning to Program with Haiku"
|
|
class="image image-thumbnail "
|
|
width="225" height="320" /><br><span
|
|
class="caption" style="width: 198px;"><strong>ISBN: 978-0-557-53969-7 (<a href="https://www.lulu.com/search/?adult_audience_rating=00&contributor=Jon+Yoder">lulu.com</a>)</strong></span></span>
|
|
|
|
|
|
<p>
|
|
In January of 2010, I started publishing lessons on learning to program for
|
|
Haiku, aimed at people who want to be able to write simple
|
|
programs to get stuff done, but never had anyone around teach them. Years ago,
|
|
I started teaching myself and am an active developer. It's my turn to give back.
|
|
</p>
|
|
|
|
<p>
|
|
All of these lessons are distributed under a Creative Commons license which
|
|
allows free distribution for noncommercial purposes. Should you have questions,
|
|
by all means <a href="https://discuss.haiku-os.org/users/darkwyrm/">contact me</a>.
|
|
</p>
|
|
|
|
<p>
|
|
If you're a fan of the lessons and want to show appreciation or to have a copy of it on your desk while you work your way through, now you have a chance to have a high quality copy, and if you've been sitting on the fence about it, read a lesson or two and then decide for yourself. A hard copy of all of these lessons, compiled and further polished, can be found at the link below. Enjoy!
|
|
</p>
|
|
|
|
<p>
|
|
<a href="https://www.lulu.com/search/?adult_audience_rating=00&contributor=Jon+Yoder">Learning to Program with Haiku at Lulu.com</a>
|
|
</p>
|
|
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 1</h2>
|
|
<p>
|
|
Have you ever wanted to learn to program for Haiku (or something else) but
|
|
never had the money or the chance? Has something else gotten in the way?
|
|
This is quite an opportunity for someone who wants to learn to code. To
|
|
kick things off, here's the first one.
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_1.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-01-20_calling_all_haiku_developer_wannabes#comments">
|
|
<img src='/images/App_Chat_32.png' title='Comments' alt='Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 2</h2>
|
|
<p>
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_2.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-01-23_programming_lesson_2#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 3</h2>
|
|
<p>
|
|
In this lesson, we examine the different types of data we can use, a more
|
|
in-depth look at how to print to the screen, and more!
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_3.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-01-30_programming_lesson_3#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 4: If, For, And, Not, Or</h2>
|
|
<p>
|
|
Decision-making and repeating instructions are on the agenda for this one,
|
|
expanding the repetoire of basic skills for writing code.
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_4.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-02-06_lesson_4_if_and_not_or#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 5: Arrays, Strings, and Pointers</h2>
|
|
<p>
|
|
This lesson marks the end of the first unit and is somewhere around
|
|
halfway from complete neophyte to writing -- and understanding -- our
|
|
first program for Haiku which uses windows and buttons.
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_5.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-02-13_lesson_5_arrays_strings_and_pointers#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Unit Review: 1 - 5</h2>
|
|
<p>
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Unit_1_Review.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-03-06_whole_lotta_lessons_goin#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 6: More Loops and Conditions </h2>
|
|
<p>
|
|
Here marks the beginning of the second unit in my series, "Learning to
|
|
Program With Haiku." Lesson #6 expands on our knowledge of loops and
|
|
decision-making constructs.
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_6.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-02-20_lesson_6_more_loops_and_conditions#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 7: Losing My Memory</h2>
|
|
<p>
|
|
This one covers two major topics: memory management and binary math,
|
|
nothing terribly exciting, but really useful and necessary nonetheless
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_7.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-02-27_lesson_7_losing_my_memory#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 8</h2>
|
|
<p>
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_8.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-03-06_whole_lotta_lessons_goin#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 9</h2>
|
|
<p>
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_9.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-03-06_whole_lotta_lessons_goin#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Unit Review: 6 - 9</h2>
|
|
<p>
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Unit_2_Review.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-03-06_whole_lotta_lessons_goin#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Unit_2_Review_Answers.pdf">
|
|
<img src='/images/Misc_Marker_32.png' title='Review Answers' alt='Review Answers'><br />Review Answers</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 10: More Pointers and the Command Line</h2>
|
|
<p>
|
|
Now we're starting to tie up loose ends before moving on to just C++. In
|
|
this lesson, we learn more about pointers and kinda-sorta pointers called
|
|
references, and we examine the basics of getting information from the
|
|
command line.
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_10.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-03-13_lesson_10_more_pointers_and_command_line#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 11: More Data Structures and Types</h2>
|
|
<p>
|
|
This time around, we will be examining some important kinds of data
|
|
structures and ways to create custom data types, a critical stepping
|
|
stone in getting to understanding the Haiku API. This is the last C / C++
|
|
lesson -- the rest will be C++ only. A couple more lessons and we'll
|
|
finally be ready to write GUI programs for Haiku!
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_11.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-03-20_lesson_11_more_data_structures_and_types#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 12: OOPs I Did It Again!</h2>
|
|
<p>
|
|
This lesson introduces us to the wonderful world of C++ and Object
|
|
Oriented Programming. It's not terribly code-heavy, so this might be a good
|
|
time to look over past lessons to make sure you understand concepts pretty
|
|
well -- it only gets bigger from here. :-)
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_12.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-03-28_lesson_12_oops_i_did_it_again#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 13: Programming With Class(es)</h2>
|
|
<p>
|
|
Today we'll be diving headlong into the murky depths of C++ programming:
|
|
classes and inheritance -- struct's with fancy tricks aplenty. It's also
|
|
our last lesson before writing our first windowed Haiku program, so get
|
|
ready and study well. Enjoy!
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_13.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-04-04_lesson_13_programming_classes#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Unit Review: 10 - 13</h2>
|
|
<p>
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Unit_3_Review.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-04-04_lesson_13_programming_classes#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Unit_3_Review_Answers.pdf">
|
|
<img src='/images/Misc_Marker_32.png' title='Review Answers' alt='Review Answers'><br />Review Answers</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 14: Our First GUI Program</h2>
|
|
<p>
|
|
It's about time: our first program which does more than print stuff to the
|
|
Terminal! Now the real fun begins!
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_14.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-04-14_lesson_14_our_first_gui_program#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 15: The Haiku API at 10,000 Feet</h2>
|
|
<p>
|
|
Lesson 15 delves further into what writing basic applications are all
|
|
about, looking at the API and its organization and focusing on an
|
|
essential: messaging. Also included in this lesson are the finished
|
|
sources for those who don't want to mess around with typing the project
|
|
out.
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_15.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_15ClickMe.zip">
|
|
<img src='/images/ide_project_32.png' title='Download Source Code' alt='Download Source Code' ><br />Download<br />Source Code</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-04-20_lesson_15_haiku_api_10000_feet#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 16: Locked and Overloaded</h2>
|
|
<p>
|
|
This lesson takes a break from hacking the Haiku API to learn a few C++
|
|
language concepts needed to continue progress as an aspiring developer.
|
|
Function overloading and operator overloading are examined in detail.
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_16.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-04-27_lesson_16_locked_and_overloaded#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 17: What's on the Menu</h2>
|
|
<p>
|
|
We are back to learning about hacking on the Haiku GUI after taking a short
|
|
C++ language break. Today's topic? Menus. Also in this lesson is some
|
|
expansion of what we know about messaging and BViews.
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_17.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_17MenuColors.zip">
|
|
<img src='/images/ide_project_32.png' title='Download Source Code' alt='Download Source Code' ><br />Download<br />Source Code</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-05-10_lesson_17_whats_menu#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 18: Working With Lists</h2>
|
|
<p>
|
|
We're starting to get closer to the end of this Learning to Program series.
|
|
After toying with menus and interface colors in the last lesson, we apply
|
|
some of the concepts used with menus to get the hang of using list boxes
|
|
and discover along the way a few bizarre sports that really exist. Games
|
|
people play. Sheesh.
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_18.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_18ListTitle.zip">
|
|
<img src='/images/ide_project_32.png' title='Download Source Code' alt='Download Source Code' ><br />Download<br />Source Code</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-05-19_lesson_18_working_lists#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 19: Resources and Pictures</h2>
|
|
<p>
|
|
Ten years ago when I first started to learn to write code using BeOS, I had
|
|
a lot of questions that I couldn't any documentation to give me the
|
|
answers. Luckily, there was the Be Code Talk mailing list and kindhearted
|
|
members of the community, like David Sowsy (Animaxo, Vesa Accepted).
|
|
Resources are one of those things that eluded me. Eventually I figured them
|
|
out, but Lesson 19 lays some of it out in plain conversation.
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_19.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_19Emo.zip">
|
|
<img src='/images/ide_project_32.png' title='Download Source Code' alt='Download Source Code' ><br />Download<br />Source Code</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-05-25_lesson_19_resources_and_pictures#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 20: All About Storage</h2>
|
|
<p>
|
|
Moving on from exploring the Interface Kit, we turn our attention to the
|
|
Storage Kit in this lesson. We take a look at the kit from a broad
|
|
perspective and also begin using some of its many of the classes. We take
|
|
a break from writing GUI applications and, instead, write a console
|
|
directory-listing program using C++.
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_20.pdf">
|
|
<img src='/images/pdf_32.png' title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_20ListDir.zip">
|
|
<img src='/images/ide_project_32.png' title='Download Source Code' alt='Download Source Code' ><br />Download<br />Source Code</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-06-02_lesson_20_all_about_storage#comments">
|
|
<img src='/images/App_Chat_32.png' title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 21: Reading and Writing Files</h2>
|
|
<p>
|
|
This lesson continues with delving into the Storage Kit,
|
|
reading and writing files. We also start writing code for
|
|
the final project of the Learning to Program With Haiku
|
|
series which will be developed over the course of several lessons.
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_21.pdf">
|
|
<img src='/images/pdf_32.png'
|
|
title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-06-11_lesson_21_reading_and_writing_files#comments">
|
|
<img src='/images/App_Chat_32.png'
|
|
title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
<br style='clear:both' /><br /><br /><br /><!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 22: Designing a GUI</h2>
|
|
<p>
|
|
Usability is one of my pet topics. Although less so now that in years past, it is all-too-often ignored or not given enough priority. This lesson scratches the surface from a developer's point of view. I'm no usability expert, but I do know a thing or two. This lesson is a must-read for any budding developer, and by the end of it, we will have a good real-world program to show off which is just shy of being ready for a release.
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_22.pdf">
|
|
<img src='/images/pdf_32.png'
|
|
title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_22HaikuFortune.zip">
|
|
<img src='/images/ide_project_32.png' title='Download Source Code' alt='Download Source Code' ><br />Download<br />Source Code</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-06-15_lesson_22_designing_gui#comments">
|
|
<img src='/images/App_Chat_32.png'
|
|
title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
<br style='clear:both' /><br /><br /><br />
|
|
<!--
|
|
===================
|
|
NEXT LESSON
|
|
===================
|
|
-->
|
|
<h2>Lesson 23: Polish and Packaging Our Project</h2>
|
|
<p>
|
|
This lesson finishes up the project that the last two have been about:
|
|
HaikuFortune, a program which randomly chooses and displays a fortune in a
|
|
window. It's not a very complicated one, but it exemplifies a reasonably
|
|
well-coded real-world project. Although it was code complete as of the end
|
|
of Lesson 22, it was not finished, missing icons and other resources. This
|
|
concludes the project with adding resources, a basic discussion on source
|
|
code licensing, and packaging a program for Haiku.
|
|
</p>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/files/learning_to_program/Learning_to_Program_With_Haiku_Lesson_23.pdf">
|
|
<img src='/images/pdf_32.png'
|
|
title='Download PDF' alt='Download PDF' ><br />Download PDF</a>
|
|
</div>
|
|
<div style='float: left; text-align: center; margin: 0px 4px 0px 4px;'>
|
|
<a href="/blog/darkwyrm/2010-06-23_lesson_23_polish_and_packaging_our_project#comments">
|
|
<img src='/images/App_Chat_32.png'
|
|
title='View Comments' alt='View Comments'><br />View Comments</a>
|
|
</div>
|
|
<br style='clear:both' /><br /><br /><br />
|
|
|
|
<h1>Conclusion</h1>
|
|
<p>
|
|
This also concludes the Learning to Program With Haiku lesson series. It's
|
|
been a good run. Rest assured, though, that this is not the last lesson on
|
|
Haiku programming that I will write. This series has been intended to turn
|
|
a motivated power user into a developer using Haiku. It's been a lot of fun
|
|
and many people have encouraged me with their kind words regarding it.
|
|
</p>
|
|
<p>
|
|
Later this summer I will start another yet-to-b e-named series which will
|
|
continue where Learning to Program With Haiku is leaving off and introduce
|
|
novice and intermediate developers to real coding specifically for Haiku and
|
|
its nuances, such as multithreaded programming, add-on coding, queries and
|
|
attributes, Tracker and more.
|
|
</p>
|