5/3 nám

4. önnin á tölvunnarfræði lokið í Háskólanum í Reykjavík, bara stakt námskeið sem ég þarf að endurtaka allan þennan tíma (auðvitað er það stærðfræði tengt!), svo ég held mér gangi alveg ágætlega í náminu með börnunum og lífinu þar á milli.

Er ennþá mjög ánægð með að hafa ákveðið að fara í Vefskólann á sínum tíma, þá áttaði ég mig á því hvað ég vildi læra betur, því ég hafði ekki verið með það á hreinu. En á sama tíma þá er ég frekar fúl yfir því að námið þar var talið of grunnt til að vera metið einhvers virði í Háskólanum í Reykjavík, ekki einu sinni gagnvart þeim áföngum sem voru sambærilegir og væri þá líklegast búin með mörg námskeiðin sem teljast upp í sérsvið Vefþróunnar.

Það var eins og þau sáu bara "oh, þetta er Tækniakademían, ekki þess virði að meta þetta", svo það var ekki einn einasti áfangi frá því námi talið vera jafnvirði neins áfanga í RU, ekki einu sinni fyrir nein af þessum 3ja vikna námskeiðum sem þau troða milli anna... mjög ósátt við það. Núna er ég að fara taka "Nýsköpun og stofnun fyrirtækja", sem ég er nú þegar búin með sambærilegt frá Vefskólanum...

Ef ég hefði áttað mig á þessu, þá hefði ég frekar bara átt að hætta í Vefskólanum um leið og ég áttaði mig á því hvað ég vildi gera, og fara bara beint í Háskólann í Reykjavík, þá hefði ég ekki verið að sóa tveimur heilum árum í nám sem var metið til einskis.

Á þeim tíma, þá var þetta nám að sannfæra mig að það væru einingar á háskólastigi, en við vorum einnig bekkur númer 2 að fara í gegnum þessa nýju námsbraut, svo þetta var nú ennþá að aðlagast. Í dag eru þetta feiningar (sem ég kalla fake-einingar eftir þetta) og námið bara 3 annir, í staðinn fyrir þau 2 ár sem ég fór í gegnum.

Ég er þó komin með auka diplómu og aukalega reynslu á ýmsu veftengdu fyrir allt þetta. Vefskólinn: 2ár, Háskólinn í Reykjavík: 3 ár... 

Það er alveg satt að námið í vefskólanum var mjög grunnt í samanburði, nánast allt sem ég hafði lært í javascript þar var þjappað saman í stakt námskeið í RU og lærði samt eitthvað nýtt, mögulega hefði þetta verið flóknara ef ég hafði ekki kynnst þessu fyrirfram hjá Vefskólanum, en ég er ósköp fljót að læra nýja hluti.

Þannig ef einhver hefur áhuga á veftengdu og vill læra það, þá mæli ég frekar með að hoppa bara beinnt upp í háskólann, frekar en að vera fara í gegnum eitthvað millinám, nema þú virkilega hefur tíma til að eyða og vilt taka þessu hægt.

Vefskólinn virkilega gaf manni meiri focus á hönnunar-tengdum hlutum, svo það sjálft er alveg þess virði, en restin, ekki svo mikið, ef maður ætlar sér að fara líka upp í háskólann. 

Veit ekki hvernig háskóli Íslands tekur tölvunnarfræði, en veit vara að einhver mældi alls ekki með því, og ég sá ekkert sérsvið fyrir vefþróun þegar ég var að spá í þessu, þess vegna endaði ég upp í Háskólanum í Reykjavík, og er bara mjög sátt við mig þar (fyrir utan það að upplifa svo mikla endurtekt í tilteknum áföngum tengda sérsviðinu, eins og ég hef nefnt).

Útskrift úr Vefskólanum

Ég var að ljúka við námið í Vefskólanum, bara eftir að sækja plaggið í næstu viku. Það er svo margt sem mig langar að gera núna með þessari kunnáttu sem ég hef aflað mér, þar á meðal væri að uppfæra/endurgera vefsíðuna mína hérna. Hún endurspeglar engan veginn hvað ég hef lært, hef ekki snert þetta þema í mörg ár.

Planið er að sækja um í Háskóla Reykjavíkur, tölvunnarfræði í vef og viðmótshönnun til að fá mína diplómu í þessum málum, um leið og ég fæ gögnin í hendurnar. Þetta er spennandi, bráðum verða báðir strákarnir mínir komin inn á leikskóla svo ég mun hafa tíma í meira nám án þess að þurfa pæla jafn mikið í pössun.

Þrátt fyrir að hafa misst svolítið úr náminu vegna fæðingarorðlofs á 2.önn þá tókst mér að útskrifast með mínum hóp, þeim finnst gaman að segja að strákurinn minn hafi fengið forritun beint í æð þar sem hann var mikið upp í skóla eina önnina.

Þuklað á vefbrasanum

Þetta nám hefur verið alveg æðislegt fyrir mig, einhver lýsti því svoleiðis að maður fær að þukla á öllum sviðum, sem auðveldar manni að átta sig á eigin hæfileikum í þessum brasa og hvað sérsvið manns gæti verið. Áður en ég fór í námið þá hafði ég aldrei farið út í JavaScript né PHP vegna þess að það getur verið svolítið 'intimidating', en núna að loknu námi þá hef ég áttað mig á að ég sé furðugóð í JavaScript miðað við hvað ég hafði verið að ímynda mér áður fyrr.

Núna veit ég að mig langar að halda áfram í námi, fara í Tölvunarfræði í HR og fá smá viðurkenningu fyrir kunnáttu, það á nú einnig að tryggja manni betri stöður í framtíðinni svo best að ljúka þessu af. Það var ekki fyrr en ég rakst á vefskólann að ég áttaði mig á hversu mikið ég myndi vilja vinna í þessum brasa og að ég er bara andskoti góð í þessu.

Ég hef alltaf verið að fikta við framenda forritun síðan ég fékk aðgang að netinu, lært að nota CSS til að gera 'custom profile' á mörgum síðum sem leyfðu notendum slíkt. En aldrei hafði ég virkilega sökt mér ofan í þetta, svo hef ég verið vefstjóri í lengri tima, sett upp vefsíður fyrir sjálfan mig og vini, prófað að setja upp ýmis vefumsjónarkerfi á borð við WordPress, phpBB spjallborð, Gallery2/3 og PiwiGo gallerí. Langaði alltaf að gera vefsíðu sem væri bæði blog og gallerí eða blog og spjallborð, en það var svo erfitt að finna akkúrat þær lausnir sem mig langaði í með notkun plugins og modules. Núna eftir námið þá er ég komin með svo mörg tól í verkfærakassan minn að ég ætti að geta gert nánast hvað sem er.

Núna þarf ég bara meiri reynslu

WordPress og Drupal

Ég fékk alveg svaka flott intro frá honum Hilmari Kára (þegar ég fór í starfsnám á vefdeild Reykjavíkurborgar) um Drupal og núna veit ég hvaða kerfi ég myndi vilja frekar eyða tíma í að læra inn á. Hann gerði þá samlíkingu að WP væri Duplo með stórum einingum sem hægt er að púsla saman á meðan Drupal væri þá tækni-lego í samanburði, þröskuldurinn til að geta byrjað að nota Drupal er talsvert hærri en hjá WordPress, en með nýjustu útgáfu Drupal (v.8+) þá hefur þessi þröskuldur lækkað talsvert.

Ef þú hefur prófað að nota 'advanced custom fields' við gerð WordPress vefsíðu og haft gaman af því, þá jafnast það ekkert á við Drupal þegar það kemur að upplýsinga arkítektúr. Ég get varla beðið eftir að prófa þetta sjálf.

Learning web development is pretty interesting

Well, I've been learning website development for the past year now and that includes design and programming. Never touched JavaScript before this and I find it quite interesting. Sometimes the best way to get something you learned to stick in your head is to try to explain it to others.

Even though I was quite familiar with HTML and CSS before I entered school, I have continued to learn new things about it since that sometimes make me feel amazed at how I was just scratching the surface of it. Many things that seemed intimidating to get into turned out to be quite simple and gave me access to interesting tools of the trade.

I will now share with you some notes

Notes about HTML

HTML has apparently gone through some improvements since I first started fiddling with it ages ago. There are now many useful new tags that help define the content's purpose and avoid creating a div-soup where you are unable to distinguish the many divs apart. I will name a few, but you can easily see the full list on W3Schools (all the tags from HTML5 are indicated with a red little "5" icon).

  • <header> and <footer>
  • <main> defines the main content
  • <section> indicates sections
  • <nav> for navigation
  • <figure> is good for adding pictures with captions (you can use <figcaption> within it to add caption

Not only does it make it easier for you to scan over the code when you use these tags, but it also greatly improves accessibility to your site for users that rely on screen-readers (both blind or visually impaired users). Keep in mind that Google is the ultimate blind user, and you will most likely want Google to be able to access your site so it'll appear in their search.

  • You should always use alt="" in your image tags, leaving them empty will make screen-readers ignore them. You should not add any description to the image if you have caption under it (else you would be forcing the screen-reader to repeat itself).
  • Just using the right HTML5 tags instead of countless divs. Having well structured content will already improve accessibility to your site without needing to go the extra mile
  • You can use tools like WAVE Accessibility Evaluation Tool to quickly check how accessible your site is. You mainly need to keep an eye on the red errors rather than being worried about minor issues.
    • If you really want to dive into accessibility and have elements on your website that the standard HTML tags wont define them well enough, then check out ARIA (link). It is a special web suit that increases accessibility for screen-readers.
  • Use headings (h1,h2... ) correctly and not based on it's default font-size because styling that should be done with CSS.
    • <h1> should only appear once per page (for website title for example) and then go by importance (for example <h2> for declaring navigation, <h3> for section titles and <h4> for sub-headings within sections/articles and so on).

Notes about CSS

  • Your new best friend is 'box-sizing' because it eliminates the pesky inconsistencies when dealing with height and width of elements, so if you tell a element to be 100px wide, it will stay 100px even if you add padding or borders.
  • You can Animate with CSS! seriously, without touching any JavaScript. check it out
  • It is very handy to use the EM and REM units when designing, it is based on font-sizes. EM is relative to the fontsize of it's parent element, 1em = the parent's element font-size, but this makes it scale easily. REM however is very consistent since it is based on the font-size of the base 'HTML' element itself.
  • SASS (or SCSS) is a super handy compiler that lets you compose CSS without the extra repetitive work. It lets you make variables and even includes special functions, generally making it simpler to code and makes your life easier as a developer. It then compiles whatever you write into a normal CSS file that you can use. check it out

Notes about JavaScript

JavaScript was created by Brendan Eich in 1995. Even though we generally talk about using JavaScript, the word itself is trademarked by Netscape (where Brendan worked at the time), so the standardized version of it is officially known as ECMAScript, ECMA stands for European Computer Manufacturers Association.

I was also told that Java is as related to JavaScript as ham is to hamster

  • Functions can be values
    • Factory functions is any function that returns a (presumably new) object without using the keyword 'new'
    • Callback functions are functions passed as an argument into another function (using it as a value)
    • Higher order function is a function that takes a function as an argument (callback functions), or returns a function
      • .filter() lets you filter
      • .sort() lets you sort
      • .map() allows you to transform the item
      • .reduce() reduces a list into a single value
  • Functional programing makes use of pure functions and function composition
    • Pure function will always give the same results when given the same input. It is self contained and does not refer to anything outside of itself (therefor having no side effects).
  • Object Oriented Programing (OOP) is using objects to store information, such as APIs, and working with those objects
    • Inheritance is a way to create objects with properties it inherits from it's parents.
    • Composition is a flexible way of doing OOP, where you assemble objects based on what they do.
  • Javascript is originally without classes, but it got introduced in ECMAScript6 and are therefor a relatively new feature. They work well with OOP and inheritance. Creating prototypes is simple with constructors but you need to create them with the keyword 'new' which can be tricky to work with, it makes it difficult to do composition with them.