O tvrtki
Bok,
mi smo COBE, digitalna agencija sa sjedištem u Münchenu, Njemačkoj i uredom u Osijeku. Bavimo se razvojem mobilnih i web aplikacija, a uspješno poslujemo već osam godina. Naš tim u Osijeku broji 40ak stručnjaka na području developmenta, UI/UX dizajna, QA-a i project managementa. Projekti su dinamični, a klijenti s kojima radimo uglavnom međunarodni. Sve
projekte radimo s velikim entuzijazmom i profesionalnošću, što dokazuju milijuni korisnika naših aplikacija diljem svijeta. Zadovoljstvo, osobni i profesionalni razvoj naših zaposlenika jako su nam važni, čemu u prilog govori da smo dvije godine zaredom dobitnici nagrade “Najbolji poslodavac” koju dodjeljuje portal MojPosao.
Zahvaljujući stalnom rastu i širenju portfelja klijenata, uvijek smo u potrazi za pojačanjem, a u našem timu često se nađu studenti i juniori koji nas osvoje entuzijazmom i željom za učenjem i razvijanjem. Ako si i ti rookie u svijetu developmenta i dizajna i tražiš smjer u kojem ćeš se razvijati, prođi kroz naše starter kitove i pronađi se. Pripremili smo ti kratke savjete za upoznavanje Android i iOS sustava, UI/UX dizajna, Frontend i Backend developmenta te Quality Assurance-a.
Kada proučiš sve detalje, provjeri tražimo li nove zaposlenike. Ako se pronađeš u nekom od oglasa, javi nam se na mail: posao@cobeisfresh.com, a uvijek nam možeš poslati i otvorenu prijavu. Sve natječaje za posao objavljujemo na našoj web – stranici te putem profila na LinkedInu, Facebooku i Instagramu, a ako želiš još više učiti o onome što radimo posjeti naš blog.
Android
Što je potrebno za postati Android developer?
- Računalo s bilo kojim operativnim sustavom
- Volja za učenjem
Koja znanja su potrebna za početak učenja?
- Osnove objektno orijentiranog programiranja
- Osnove rada s Java programskim jezikom
- Osnove rada s Kotlin programskim jezikom
- Poznavanje XML-a
Koji alati su potrebni za razvoj Android aplikacija?
- Android studio – https://developer.android.com/studio/?gclid=EAIaIQobChMIkYf99Y2b4gIVEcayCh0UognIEAAYASAAEgJN-PD_BwEAndroid studio sadrži sve što je potrebno za početak rada i učenja Android developmenta. Ako nemaš Android uređaj za testiranje tvog projekta, može ti pomoći i Virtual Device Manager sa svojim emulatorom Android uređaja (bilo koje verzije i specifikacija). Kako bi tvoji alati bili up-to-date, Studio koristi ugrađeni alat – SDK Manager. Osim ovih, postoji pregršt drugih alata i dodataka (plug-ina) za Android studio koji će ti olakšati rad.
Odakle krenuti?
Prvo mjesto koje bi svaki developer trebao posjetiti je Googleova Android Developer dokumentacija: https://developer.android.com/docs.
Ovdje možeš pronaći vodiče koji objašnjavaju gotovo sve, od toga kako postaviti prvu Android aplikaciju na noge, preko naprednijih tema, kao što su spremanje podataka u bazu pa sve do oslobađanja pristupa aplikaciji osjetljivijim dijelovima Android sustava.
Na istom mjestu nalaze se i smjernice vezane za dizajn Android mobilnih aplikacija, korištenje Googleovih alata za objavu aplikacija na Play Store i savjeta za uspjeh same aplikacije.
Nakon što prođeš svu dokumentaciju, i napreduješ na ozbiljnija pitanja, postoji još nekoliko mjesta na kojima možeš potražiti pomoć:
– Google Developers: centralno mjesto za sve Googleove alate (Maps, Analytics, Youtube…) s tutorialima koji objašnjavanju kako ih implementirati u projekt.
– Android Material Design: centralno mjesto za pomoć pri korištenju materijal komponenti.
– Android Arsenal: nakon što prođeš gore navedeno, spreman si za korištenje biblioteka (libraryja) – Android Arsenal sadrži katalog većine biblioteka koje će vam ikada trebati, od onih koje se odnose na UI do networkinga i baza podataka.
– Awesome Android UI: Git repozitorij sa različitim custom viewovima.
U ovom kratkom pregledu vidljivo je kako zaista postoji velik izbor literature, knjiga, tutoriala, savjeta, vijesti i iskustava koji vam mogu pomoći. Ipak, najvažnije je imati želju za učenjem i razvijanjem. A uz sve navedene alate i vodiče, sigurni smo da ćete jako brzo imati svoju prvu aplikaciju.
Dodatne poveznice:
- Android Arsenal – https://android-arsenal.com/
- Android Material Design – https://material.io/develop/android
- Material Design – https://material.io/design/
- Retrofit – https://square.github.io/retrofit/
- Dagger – https://dagger.dev/
- Koin – https://insert-koin.io/
- Android Jetpack – https://developer.android.com/jetpack
- Awesome Android UI – https://github.com/wasabeef/awesome-android-ui
SWIFT/iOS
Ključne stvari koje svaki Swift developer mora znati:
- Poznavati principe objektno orijentiranog programiranja: objekti, klase, strukture, inicijalizatori, enkapsulacija, nasljeđivanje, itd.
- Poznavati osnovne principe funkcionalnog programiranja: closure (lambda funkcije), funkcije višeg reda (map, filter, reduce)
- Razumjeti razliku tipova koji se prenose po vrijednosti i referenci (value vs. reference type), tj. razliku između klase i strukture
- Znati što je MVC (Model-View-Controller) te gdje pripadaju pojedinačni dijelovi koda – Znati koja je svrha i kako koristiti Git
Ključne stvari koje svaki iOS developer treba znati:
- Xcode: prečaci, izbornici, gdje se što nalazi, debugging alati
- UIKit: Storyboard, Auto-Layout, Segue, view hijerarhija
- Lifecycle metode ViewControllera, AppDelegatea
- Kako radi UINavigationController i iOS navigacija
- SwiftUI
- Combine Framework
- Kako dohvatiti podatke s interneta
- Što je REST, što je JSON, i kako parsirati JSON u Swift strukturu ili objekt – Dodavanje frameworka u aplikaciju (CocoaPods, Carthage ili Swift Package Manager)
- Rad s UserDefaults, spremanje i dohvaćanje podataka iz Core Data
Iako na prvu zvuči zastrašujuće, ne moraš se brinuti jer postoji puno resursa koji će te uputiti i uvesti u svijet iOS-a. Za početak, možeš krenuti s odličnim predavanjima o razvoju iOS
aplikacija u Swiftu, Sveučilišta Stanford, koja su dostupna potpuno besplatno preko iTunes-a. Prof. Hegarty provest će te kroz gotovo sve aspekte kreiranja iOS aplikacija. Ako uz gledanje predavanja paralelno i kodiraš, nakon što pogledaš sve videje, bit ćeš spreman napraviti bilo koju iOS aplikaciju koju možeš naći na App Storeu.
Kako bi naučio iOS, svakako moraš znati Swift. A materijale za učenje najbolje je potražiti izravno kod kreatora Swifta – Apple ima sjajan Swift eBook koji je kompletan pregled tog jezika, kojem se i naši developeri ponekad vraćaju kada negdje zapnu.
Dok je Appleov eBook više teoretske naravi (koju svakako trebaš znati), ponekad ćeš trebati i praktične primjere da bi znanje “sjelo”. Najbolji resurs praktičnih primjera za početnike je Hacking With Swift, web stranica koja je puna primjera i zadataka za Swift.
UX/UI Dizajner
Tko je UX/UI dizajner i što radi?
UX/UI dizajner se, prije svega, bavi dizajnom korisničkih sučelja kako bi ono bilo razumljivo, jednostavno za korištenje, ali i oku ugodno. Iako su UX i UI dvije različite discipline, u COBE-u se dizajneri odlično snalaze u obje.
UX se odnosi na istraživanje potreba korisnika i konkurencije, osmišljavanje flowa digitalnih proizvoda kao i strukture informacija. UX dizajner izrađuje wireframeove screenova i storyboardove, provodi brainstorming sesije i primjenjuje brojne druge metode kojima se dolazi do najboljih featurea za određeni proizvod. Ono što se u UX fazi odabere i zaključi, koristi se kao baza za UI dizajn. Tijekom UI faze, dizajneri wireframeove pretvaraju u finalne ekrane i definiraju vizualni identitet digitalnog proizvoda.
I UX i UI moraju uvijek voditi računa o krajnjim korisnicima i mogućnostima developmenta dizajniranih ekrana. UX/UI dizajneri uglavnom rade za web, iOS i Android platforme, ali postoji mogućnost dizajniranja sučelja za druge pametne uređaje kao što su sučelja za automobile ili čak aparate za kavu.
COBE Designer Checklist:
- Voliš istraživati, rješavati probleme, analitički razmišljati, učiti nove stvari i biti u korak s digitalnim trendovima
- Poznaješ načela dizajna i tipografije
- Poznaješ dobre i loše UX prakse te dizajn odluke donosiš na temelju potreba korisnika
- Rasturaš neki od alata za UI dizajn poput Sketcha, Figme ili AdobeXD-a – Material Design i Human Interface smjernice imaš u malom prstu
- Imaš iskustva u dizajnu korisničkih sučelja za različite uređaje i platforme (responsive web, Android, iOS…)
- Snalaziš se u svim fazama projekta, od skiciranja i koncepta (wireframeova) do developmenta dizajniranih ekrana i izrade prototipa
- Lako se izražavaš na engleskom i hrvatskom jeziku i uvjerljivo prenosiš svoje ideje timu, ali i klijentima
- Posjeduješ dizajn portfolio s prethodnim radovima (stvarni ili izmišljeni projekti) koji pokazuje razinu iskustva i znanja
Za dodatne bodove?
- Poznaješ osnove frontenda (HTML/CSS) ili mobile developmenta
- Upoznat si s Atomic Design pristupom i Sketch Libraryjima
- Imaš super profil na Dribbbleu i/ili Behanceu
- Imaš iskustvo s ilustracijom i/ili animacijom
- Poznaješ alate kao što su: Zeplin, inVision, Miro, Flinto, ProtoPie
- Imaš iskustvo rada u page builderima (npr. Webflow ili Divi, WPBakery za WordPress)
- Poznaješ Adobe CC proizvoda (Photoshop, Illutrator, After Effects) – Imaš iskustvo rada u Scrum timu
Nemam iskustva. Odakle krenuti?
Bez brige. Pripremili smo ti listu linkova koji će ti dati detaljniji uvid u spomenuta područja i pomoći da započneš svoju UX/UI karijeru ili svoje postojeće vještine jednostavno podigneš na višu razinu.
Design Principles: https://www.youtube.com/watch?v=WONZVnlam6U&list=PLYfCBK8IplO4E2sXtdKMVpKJZRBEoMvpn
Sketch za početnike: Youtube Tutorial
Figma za početnike: https://www.youtube.com/channel/UCQsVmhSa4X-G3lHlUtejzLA
Design System: https://medium.com/beyond-360/5-steps-for-creating-a-design-system-7ac86e3808fc
Atomic Design metodologija: Brad Frost
Material Design: Material Guidelines
Human interface: iOS Guidelines
Design Principles: https://uxmisfit.com/2019/04/23/ui-design-in-practice-gestalt-principles/
Odličan članak s linkovima za UX/UI za još detaljnije istraživanje:
https://uxdesign.cc/ultimate-start-guide-for-beginner-ux-ui-designer-b848be089589
Scrum in a nutshell: https://medium.com/@realjoselara/agile-scrum-process-in-a-nutshell-6ec32a59efb
WEB
FRONTEND
Ključne stvari koje svaki frontend developer mora imati:
- Odlično poznavanje CSS i HTML-a
- Poznavati JavaScript programski jezik
- Poznavati neki od CSS predprocesora (SASS, LESS,…)
- Poznavati metodologije pisanja CSS-a (BEM)
- Poznavati osnove rada Webpacka
- Imati osnove responzivnog dizajna
- Poznavati osnove React-a
- Razumjeti svrhu Git-a i njegovo korištenje
Za dodatne bodove?
- Osnove GraphQL-a
- Poznavanje Jest/Enzyme ili nekog drugog testing library-ja
Ukoliko se odlučiš za avanturu frontend developera, prvi korak koji moraš napraviti je upoznavanje HTML i CSS-a. Nakon što si savladao dva osnovna temelja svake web stranice, vrijeme je za JavaScript! Nemoj pokleknuti pred kušnjom isprobavanja nekog JavaScript librarya ili frameworka prije učenja samog JavaScripta – radi stjecanja dobre podloge i razumijevanja principa rada jezika, najprije je potrebno dovesti poznavanje čistog JavaScripta na neku razinu, pa se tek onda uhvatiti u koštac s nekim od (bez)brojnih librarya ili frameworka koji za njega postoje. JavaScript kao jezik na prvu ruku će ti izgledati jednostavno, dok ne kreneš malo dublje istraživati.
Sljedeći linkovi će ti pomoći u tome:
JavaScript Garden:
https://bonsaiden.github.io/JavaScript-Garden/
ES6:
http://marijnhaverbeke.nl/talks/es6_falsyvalues2015
Promises:
https://developers.google.com/web/fundamentals/primers/promises
Async things:
https://mostafa-samir.github.io/async-iterative-patterns-pt1/
How to handle undefined:
https://dmitripavlutin.com/7-tips-to-handle-undefined-in-javascript
Naravno, gore navedene vještine nikako nisu jedine stvari koje jedan frontend developer treba znati! Svakako ćete se susresti sa CSS pre- i postprocesorima, task runnerima i module bundlerima, da ne pričamo o već spomenutim JavaScript libraryima. Frontend development je dinamično područje te je izazovno ostati u korak s tehnologijom.
Ako te zanima posao u COBE-u, riješi zadatak na linku i javi nam se. A ako si student i želiš doći na praksu, probaj riješiti ovaj zadatak.
BACKEND
- Ključne stvari koje svaki backend developer mora znati:
- Poznavati načine izrade RESTful web servisa
- Znati baratati JSONima
- Poznavati mehanizme rada SQL i NoSQL baza podataka
- Poznavati objektno orijentirani pristup programiranju
- Poznavati osnovne uzorke dizajna
- Poznavati osnove deploymenta aplikacije
- Poznavati osnove rada s terminalom
- Svrha Git-a i njegovo korištenje
Vidiš li se ipak više u backend vodama, kao i u slučaju JavaScripta kod frontenda, na prvom mjestu je potrebno poznavanje jezika. Što se backenda tiče, mogućnosti je više pa je nužno odabrati jedan jezik koji ti se sviđa i svoje znanje graditi na temelju njega. Prebaciti se na drugu platformu (npr. s Node-a na Rails) relativno je probavljivo pod pretpostavkom da si
savladao osnovne stvari koje su potrebne za upogonjivanje i razumijevanje backenda. Internet može biti zastrašujući ocean resursa i materijala za učenje pa smo ti pripremili nekoliko korisnih početnih točaka iz perspektive Node.js-a kojeg COBE koristi za upogonjivanje backenda:
REST API with Express and Mongo:
https://hackernoon.com/restful-api-design-with-node-js-26ccf66eab09
Project structure:
https://blog.risingstack.com/node-hero-node-js-project-structure-tutorial/
Best Practices for Writing Node.js REST APIs
https://blog.risingstack.com/10-best-practices-for-writing-node-js-rest-apis/
Debugging Node in Webstorm:
https://www.jetbrains.com/help/webstorm/running-and-debugging-node-js.html
Svaki backend developer bi trebao znati napraviti rutu na koju će se gore spomenuti frontend developer moći spojiti i dobiti podatke iz baze. Rad s bazama, kako relacijskim tako i nerelacijskim, uvijek će biti ključan faktor bez obzira na platformu.
Također, poznavanje strukture RESTful web servisa nužno je za osmišljavanje arhitekture backenda, kao i snalaženje u objektno orijentiranom pristupu programiranju. Za kraj, ne smiješ se bojati terminala! Preko njega ćeš izvršavati sve akcije kojima barataš backendom – ovo uključuje i verzioniranje preko Git-a te deployanje gotovog backenda.
QUALITY ASSURANCE
Prije ulaska u svijet QA-a, najprije trebaš provjeriti imaš li svu potrebnu opremu kako bi postao neustrašivi QA vitez:
– Mreža
– Sprej za kukce
– Muholovka
Ako si upravo pomislio “Što ja to čitam?”, strpi se, objasnit ćemo ti. Kako na QA gledamo kao na jedno, prije svega, zanimljivo i zabavno zanimanje, i ovaj QA Starter Kit odlučili smo započeti na zabavan način.
P.S. Ako nisi primjetio, uvod smo napisali u obliku jednostavnijeg bug reporta kako bi dobio uvid u njegovu strukturu, a u nastavku ćeš saznati posjeduješ li potrebna znanja i vještine kako bi postao QA inženjer.
QA u svakodnevnom životu
Svatko od vas na neki način je tester. Npr. pri kupovini upaljača, prvo što ćeš napraviti je provjeriti radi li, dok se voziš automobilom provjerit ćeš koliko brzo može voziti, a ni odjeću nećeš kupiti dok ju ne isprobaš (uglavnom). Sve ove aktivnosti sastoje se od dijela u kojem nešto testiraš, odnosno isprobavaš.
Zamisli sljedeću situaciju: Kupio si televizor. Presretan si i jedva ga čekaš početi koristiti no nakon što si ga upalio, primijetio si sitne mrlje po ekranu. U početku si ih odlučio ignorirati no nakon nekoliko dana ekran ti se počeo gasiti, dok je ton i dalje radio te su se preko cijelog ekrana počele pojavljivati bijele linije. Što se dogodilo? Iz nekog razloga na police u trgovini dospio je tehnički neispravan televizor.
Zašto se to dogodilo? Zato što nitko nije provjerio televizor prije nego što je otišao u prodaju.
Zaključak: Prilikom svake kupnje postoje određena očekivanja da je proizvod koji kupujemo ispravan i da savršeno obavlja svoju funkciju no tko je zaslužan da to tako zaista i bude? Quality Assurance Engineer.
Uvod u QA
Quality Assurance ima jako važnu ulogu u procesu razvoja softwarea. Osim prijavljivanja i analize bugova zajedno s developerima, QA posao uključuje pisanje dokumentacije, analizu zahtjeva te ručno testiranje. Također, važno je istaknuti da ćeš uvijek morati biti u toku s novim tehnologijama te različitim platformama zbog dinamičnosti IT svijeta.
Kao QA Engineer susrest ćeš se s manualnim i automatskim testiranjem, a kojim ćeš se alatima sve služiti ovisi o okruženju u kojem ćeš raditi. Kao početnik trebao bi biti upoznat s teorijom, alatima koji postoje i načinima na koji se testiranje može izvršiti.
Jedna od bitnijih odlika svakog dobrog QA-a imati je razvijeno logičko razmišljanje. Zato smo osmislili nekoliko, možda banalnih, pitanja koja ti mogu pomoći provjeriti način na koji razmišljaš:
– Što je bitnije; isporučiti proizvod na vrijeme, proći što jeftinije ili osigurati njegovu kvalitetu?
– Možeš li se osvrnuti oko sebe i sa sigurnošću istaknuti nešto što nije pravilno ili uobičajeno?
– Developer kaže: “To nije bug!” – Što ćeš napraviti?
– Zašto stolica zahtjeva 4 noge?
– Pronašli ste bug u aplikaciji i ne možete ga reproducirati. Kako biste to prijavili?
Linkovi:
http://tryqa.com/what-are-the-software-development-life-cycle-sdlc-phases/
https://www.guru99.com/software-testing-seven-principles.html
https://www.istqb.org/downloads/send/51-ctfl2018/208-ctfl-2018-syllabus.html
https://www.lambdatest.com/blog/difference-between-manual-and-automation-testing/
https://www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf
https://www.youtube.com/watch?v=5FUdrBq-WFo&list=PL9ooVrP1hQOFP9H8Y15DVGCA6GavhgJ8a&index=1
https://marker.io/blog/bug-report-template/
Pitanja za provjeru znanja:
- Što je to Quality Assurance?
- Što je to Software Development Life Cycle? Gdje se tu uklapa QA? – Koja su to 7 principa testiranja?
- Što znači priority? A što severity?
- Koji test typovi postoje?
- Koji test leveli postoje?
- Na koji način treba prijaviti pronađeni bug?
- Koja je razlika između manualnog i automatskog testiranja?
- Zašto relacija između manualnog i automatskog testiranja nije ‘ili’ već ‘i’ – Kada se uvode automatski testovi?
Ako si ova pitanja riješio kao iz šale te misliš da imaš potrebne odlike jednog QA inženjera – javi nam se. A možeš nam se javiti i ako ti neke stvari nisu jasne ili pak imaš druga pitanja vezana uz QA.
Kako se prijaviti za posao u COBE-u?
Sve otvorene natječaje možeš pronaći na našoj web – stranici , a ako nas pratiš na društvenim mrežama, bit ćeš u tijeku s njihovim objavama. Ako vidiš da nismo u aktivnoj potrazi za nekim novim, možeš nam poslati otvorenu prijavu na posao@cobeisfresh.com. Isto vrijedi i za studentske prakse.
P.S. Ako se tijekom učenja suočiš s problemom na koji nemaš odgovor, naši developeri i dizajneri rado će ti pomoći. Možeš nas kontaktirati na mail: posao@cobeisfresh.com ili putem naših profila na Facebooku i Instagramu. Sretno!