[Draft] Learning Proposal


Originally from http://kiri.dmt-uts.net

Advance!

Name: Clara Tse
Student Number: 11000799

Personal Learning Needs

I have some prior understanding of object-orientated programming, various programming concepts and know snippets of programming and mark-up languages, however my knowledge in any category does not feel comprehensive enough and often is not. I often find myself searching on the internet to solve a problem which has appeared, and although this is a normal thing to do for any programmer, I wish to be able to resolve these problems through my own abilities.

I would love to be able to learn more languages, both languages in terms of the written and spoken languages of another country, as well as programming/scripting/markup languages in order to create a host of new and varied content and better understand a world, or worlds, which I very much admire yet cannot fully comprehend. This would facilitate a greater understanding between peoples and further our connectedness.

I also lack knowledge of how to maintain a website. Instead of relying on others' help, I hope to gain independence and would like to learn systems administration skills to better manage my pre-existing websites.

SWOT Analysis

Strengths

  • Ability to follow-through and complete tasks
  • Eye for detail, both in text as well as in design
  • Dedicated to continually improving a product
  • Inquisitive manner
  • Generally creative/artistic minded - can draw and write creatively
  • Skill with grahphics programs
  • Knowledge of HTML, XHTML, CSS, SQL, basic knowledge of JaveScript

Weaknesses

  • Maintaining something long-term
  • PHP and other programming/scripting/markup languages
  • I code in an ad hoc manner, so the expected structure is not always present
  • A tendency to overthink and make things too complex
  • Lack of experience in backend work

Opportunities

  • This subject that shall strive to stretch my boundaries and nurture my problem-solving skills
  • New opportunities to try out these skills on personal projects and potentially in industry one day
  • An understanding of and chance to try out new technologies
  • Chance to harvest knowledgeable friends' minds to assist my own learning process as a result of my previous course
  • An opportunity to create something new and innovative for my university club, and to bring long-brewing ideas into reality.

Threats

  • Time as a result of responsibilities, commitments and/or personal situations
  • Tiredness/fatigue and illness if applicable
  • Ease of internet access
  • Blocking of ports via UTS internet or similar problem on other networks

Learning Needs in DMT

I have a good understanding of HTML4 and CSS3, the differences between HTML4 and XHTML, can mess around with JavaScript and can write basic JS, know PostgreSQL but am rusty with it after not using it for a couple of years, can understand what happens when reading PHP but cannot write it, and can understand the configuration of servers and various terminology but have no experience with personally dealing with webhosts or anything remotely 'back-end' related (predominantly, I deal with the frontend in most instances).

Thus it can be determined that these gaps are where further development is needed, where there is an understanding of the processes, but this understanding does not go deep enough. My learning of the scripting and markup languages mentioned previously was ad hoc, so if a structured approach can be taken to fully revise and refresh what was learned previously, better practices can be learned and a greater understanding can be sought.

I wish to be able to gain a greater understanding of these technologies beyond my current self in order to gain a better insight into the underlying technologies of a website at a deeper level as well as write more complex and accessible web content that both appears richer yet also can appeal to an audience which appreciates minimalism (the 'convenience' of using a language such as PHP will make allow for a great deal of information to be delivered in different ways, yet the formatting of this information need not be complex). The aforementioned are both expectation of the result of this subject as well as my goal in picking this course for such a subject, however I cannot expect to gain this without putting in enough effort.

Learning Plan

Objectives

What do I want to learn?

  • JavaScript
  • PHP
  • XML (for AJAX)
  • Customising feed content
  • How to manage and maintain web hosting and how to manipulate the backend, such as dealing with databases
  • Better practices while coding in XHTML and CSS

Strategies

How will I do it?

The best way to gain such skills is to practice diligently and read widely. Once a concept is understood, if it is practiced and put into use, it is more likely that this will be remembered and through practice, you are able to see all the ways in which it could be used. Several hours practicing this programming every week would already be a sufficient first step into furthering my own knowledge in a subject.

Practice does not simply involve completing set exercises though. Finding ways in which newfound skills can then be incorporated into existing systems or projects will give a new opportunity to deepen your understanding, even if it ultimately fails. Failure should be considered as a lesson, and remembered for the future. Focus should not be solely spent on learning and practicing but also innovating, so a couple of hours should be spent each week seeing how obtained skills can improve on my existing content.

Reading widely articles on the internet, textbooks, manuals and standards will also assist in achieving these goals as this reading is the first step of understanding a concept as detailed above. You could examine code to see what it does, however it does not mean you understand the syntax to it, or good practices and approaches to it. You can also learn from others' experiences, such as reading about what others' have done or solved in the form of books (autobiographies, for instance), and blogposts.

Resources

Resources

What exactly will I use?

Learning Resources

Given the extent of resources on the internet which includes the comprehensive resource that is W3CSchools as well as sites such as Codecademy, these are the first building blocks to achieving part of my goal in providing a solid programming base, however obviously requires the investment of time and effort into practicing and working through exercises to develop the skills which I wish to develop.

There are also books from O'Reilly publishing (such as this one) available in both e-book formats as well as physical copies which teach programming through a practice-based approach. Sometimes they are catered to programmers coming from different backgrounds learning a new language, and sometimes they are written for anyone. I recently obtained 'High Performance Web Sites' off a friend, so this could also assist in my learning of best practices when constructing a website to ensure it runs fast and smoothly, optimising it.

Other Resources

I shall be using Bluefish or Textmate for my coding. My supporting graphics programs shall consist of a mixture of Photoshop and FireAlpaca. All code shall be validated to meet World Wide Web Consortium (W3C) standards.

Proposed Project Description

What will you build?

Although the idea is not concrete, seeing sites such as W3CSchools and Codecademy (mentioned and linked above) gives me the inspiration to also create a website which can foster easier learning or more interactive learning. The intended audience could be programmers (if teaching coding), or people interested in other cultures (if teaching other languages, such as Japanese or Chinese), or even just children (if teaching simple things like numbers, the alphabet or spelling). This is a focus on use of the internet as a free learning tool to nurture future generations. It may or may not require an account to login, or it could provide the option. Although it is a simple idea overall, it will most likely require me to learn that which I had listed above in my objectives in order to produce the site smoothly.

Although this description is not presented in fine detail, it does concisely describe the extent of my idea at present, before further research can be conducted.

Codecademy tutorial
[Image: Codecademy first lesson on their homepage]

Schedule

What do I plan to do when?

Research into the idea should occur further into the next couple of weeks to produce a more detailed (or that is, concise) Learning Proposal, with beginning of learning PHP and revision of CSS and XHTML. Identifying the requirements, use cases and resource requirements should be completed in this stage as well to ensure a well-thought out proposal as often you will reach this stage and realise changes need to be made already.

After this learning proposal is completed, the system can be envisioned with a series of wireframes and storyboards for one to two weeks using the requirements identified previously and the necessary technologies in order to make it work should be assessed (visual design as well as interaction design and the systems architecture should be assessed). Once this is done, a prototype of the system can be attempted and a total of at least 4 weeks should be spent developing this website.

It is expected some steps may take a little longer than others or may appear that they were unrealistic expectations later, so there is a leftover buffer of a couple of weeks.

References

  1. Codecademy 2013, Learn to code, viewed 3rd March 2013. <http://www.codecademy.com/>
  2. O'Reilly Media 2013, Programming PHP, viewed 9th March 2013. <http://shop.oreilly.com/product/9781565926103.do>.
  3. O'Reilly Media 2013, High Performance Web Sites, viewed 10th March 2013. <http://shop.oreilly.com/product/9780596529307.do>.
  4. Souders, S. 2007, High Performance Web Sites, first edition, O'Reilly Media, California.
  5. Refsnes Data 2013, W3CSchools Online Web Tutorials, viewed 10th March 2013. <http://www.w3schools.com/>