Herein lie a series of tips posted to comp.lang.tcl for learning more about Tcl. Some tips are more practical than others, but all should result in you learning more about Tcl than you knew before you started... I have taken the info below from postings by Cameron Laird, Paul Duffin Eric Galluzzo and myself and reorganized/rewritten it. Feel free to email me if you have additional items for the list.
  1. Use the man pages that come with the source. Note that during the installation process, the make files create additional links to a number of the files in the source's doc directory. If you didn't do a 'make install', then you will need to search through these files a bit to locate the specify files that you need. For people who are using binary distributions which came without man pages, email the provider of the binary distribution and ask for access to the man pages in some form. Finally, if all else fails, the man pages are available via http at a number of places such as Tcl Resource Center: doc.manual.
    It has been mentioned that users might not realize that all of the Tcl, Tk, and other extension commands have man pages, because the hundreds of pages that are a part of the system are not listed on the tclsh(1) or wish(1) man page. This is typical of Unix documentation - the man pages would be hundreds of pages long just listing the other documentation pages otherwise. It does make it a bit tough for a new to Tcl (and Unix) programmer to figure out where to look though. Locate where your system has wish installed to see if in a directory above that if there is a directory called man. If so, then below it should be a series of directories called man1, man3, and mann. These contain the various files, in nroff format, that make up the documentation for Tcl.
  2. Browse the comp.lang.tcl newsgroup every day. Look thru the Usenet archives at DejaNews or etc. for past discussions.
  3. Talk to colleagues who are using Tcl.
  4. Read various online tutorials and resources. John Ousterhout's notes on the intro to tcl and tk are quite good at getting someone started. See the comp.lang.tcl launch pad for pointers to various other tutorials.
  5. Buy a Tcl based book - or borrow one from the library. There are several guides to tcl books - I generally recommend the guide in Part 1 of the comp.lang.tcl FAQ. Type in the examples, try them out in your programs, etc.
  6. Attend a class. Some colleges or universities or user groups hold intro classes. A number of companies offer classes for a price. At least once or twice a year, a Usenix conference has at least one tutorial.
  7. Grab code and read it and try it out. Many extensions come with sample programs. Tk itself has a demo program called widget that gets installed in the lib/tk directory which many people find very helpful in learning Tk. Many folk post code to this newsgroup. Then of course, the Tcl Software Catalog has a lot of applications cataloged - and there are more that folk haven't told me about yet. Cameron's Tcl Examples page is another great source of inspiration.
  8. When someone mentions having draft chapters of a new book up, go and get them and read them - and send the author notes about any typos, examples that didn't work, parts you didn't understand or felt were not clear enough, etc. Or, in any case, when a new book comes out, try to go thru this process. Reading a book with an eye towards trying out the samples, and sending feedback to the author, not only helps you concentrate on the topic more, but allows the author to continually improve the product. Of course, before sending errata to the author, ensure that the items in question are not already noted by the author somewhere on the book's web page.
  9. Pick a Tcl topic area area that you feel could use some work and began building pieces of a new FAQ or tutorial.
  10. When you see someone write a particularly useful posting regarding a Tcl area you didn't understand as well as you thought, encourage the poster to write a stand alone articles, magazine articles, books, or to hold a session at an upcoming conference on the topic.
  11. Search for articles in magazines and journals on Tcl topics. There is no existing magazine which focuses on Tcl topics. However, there are a few magazines which post articles - watch in particular the Unix and Linux related magazines. If you find references to articles, not only look up those references, but post them to comp.lang.tcl so that others can benefit.
  12. Build a web site, detailing the areas of Tcl that you do understand and offer to help others in this area. The exercise of helping someone else frequently builds up your own expertise.
  13. Investigate other web sites for material relating to Tcl.
  14. Volunteer at work to be the person who builds new versions of tcl and extensions. You don't have to be an expert to take a look at someone else's problem, try to duplicate the problem, help write up problem reports to go to the author and comp.lang.tcl, do follow up, etc. Report build or test problems to the authors so they can make things better - and it helps you understand the software better.
  15. Do a talk at work or at a local user group on tcl, a Tcl related conference, www resources, etc. Nothing like the rush of facing a group of others to 'force' you to learn more about a topic.
  16. Deliberately attempt to be helpful to others. You learn a lot by checking to see if sample bug reports reported act the same on your platform, by posting observations you have about the problem, or thoughts on how things might work better, or wishes on how they did work better.
  17. Chose a special topic of interest, and wrote up an article on your journey in becoming expert in it. Others will enjoy reading your experiences.
  18. Present a colloquium on Tcl for a software engineering class you might be taking.
  19. Volunteer to solve a couple of your System Administrator's (or database administrator's--BIG opportunities there!) problems that keep getting pushed to the bottom of her stack, but that you can solve with Tcl to your mutual benefit. You will find that Expect and Oratcl/SybTcl/etc. are frequently useful in this domain of problems.
  20. Write for academic or professional conferences.
  21. Write for magazines (there are folk on comp.lang.tcl who can help with leads here).
  22. Sign up with special-interest mailing lists. There are many - if you find one not listed in the Tcl Internet resources let me know and I will add it.
  23. Volunteer to assist in writing the "README: Tcl-URL!" weekly summary.
  24. Write one of the dozens of tutorials or FAQs that remain undone.
  25. Write a useful little control panel for your co-workers in Tk that they expected would be 4 megabytes in Visual Basic.
  26. Show your local Web workers how Tcl can simultaneously simplify and dynamicize their server-side designs.
  27. Unexpectedly receive acceptance on a bid you submitted for a project using Tcl tools you don't understand (that'll get the blood moving!).
  28. Volunteer to help Usenix or the Consortium.
  29. Tell your dissertation committee you can do it in Tcl.
  30. Feed useful questions and answers to the appropriate FAQ maintainer! Feed corrections to the FAQ maintainer! Forward news articles and magazine references to folk maintaining this type of info - I _think_ that someone is actively maintaining a page of this type of info. Trying to be helpful is very educational to both the searcher and the recepient.
  31. Attend the Tcl Conference. Attend the Birds of Feather sessions. Attend the poster session. Talk to presentors and the attendees. Attend the sponsored meals and find new areas you can contribute to others attending. Write up notes on the conference and post to comp.lang.tcl.
© Copyright by Larry W. Virden <>, 2002