Jump to content
php.lv forumi

Specializācija


Java

Recommended Posts

Sveicināti!

Izdomāju ierosināt offtopika tēmu par "specializāciju" IT sfērā. Ir tāds vecs un patiess teiciens "kas der visam, neder nekam". Tas nozīmē, ka universālu speciālistu - emulatoru - praktiski nav - jo ja viņš zinās visu, tā īsti labi nezinās neko! Tātad - katram nāksies specializēties uz savu jomu! IT sfērā jau labu laiku specializējas cilvēki sekojošās jomās - dzelžu meistari, admini, programmētāji, dizaineri. Manuprāt, pamazām arī web programmēšanā un programmēšanā noslāņojas sekojošas specializācijas:

1) klienta puses programmētāji - viņi zina ļoti daudz par html (kas arī tomēr nav bērnu spēle, ja iet runa par dtd līmeni :P), css un varbūt arī javascript - tieši tā, es uzskatu, ka šai specializācijai jāzin arī javascript, jo klienta puse principā sastāv no trīs slāņiem - content (html), presentation (css) un behaviour (javascript, tai skaitā ajax). Attiecīgi vajadzētu pārzināt visus šos slāņus jeb līmeņus.

2) server puses programmētāji - pārsvarā tie būs koderi, bet arī ļoti nopietni programmētāji, valodas lielākoties - php, python, asp, jsp utml. zinātāji. Šiem vajadzētu pārzināt arī pamatlietas datubāzēs (kas saistās ar web programmēšanas valodām) un pamatlietas server pusē (virtuālās direktorijas, .htaccess, pamata konfigurācijas .ini faili un konfigurācija kā tāda vispār). Šiem varbūt nav ļoti labi jāpārzina Linux vai citas sistēmas, uz ko atrodas serveri.

3) serveru un sistēmu administratori - šiem jāzin attiecīgās sistēmas - Linux, Windows vai kas nu tur vēl plus jāzin pamatprogrammatūra un konfigurācijas (Apache, SSL lietas utt.) un jāmāk installēt un konfigurēt JEBKO! :)

4) datubāžu administratori - šiem perfekti jāzin gan datubāžu teorijas, gan SQL vai citas datubāžu programmēšanas valodas, kā arī datubāžu uzstādīšana, migrēšana utml. - tā visa ir smaga tēma pati par sevi, tāpēc būtu labi, ja zinātu to - tas jau ir ļoti ļoti profesionāls un labi apmaksāts darbs!

5) dzelžu speciālisti - parūpēsies par visu, kas saistīts ar dzelžiem un vadiem un uzturēs visas šīs lietas - šeit laikam ir vislielākā izvēle, jo derēs jebkurš dzelžu spečuks, kas tomēr nav maz, jo tās lietas, atšķirībā no programmēšanas, prasa vienkārši tehnisku pieeju visiem, nevis krietni abstraktu domāšanu (tikai mans viedoklis).

 

Tas nu būtu mans iedalījums par dažādiem web (un arī jebkuras citas programmēšanas) speciālistiem! Īsāk sakot - "IT sfēras guru"! :)

Edited by Java
Link to comment
Share on other sites

Ar webisku programmēšanu ikdienā vispār neko nenodarbojos, tāpēc nezinu, bet vai tiešām dabā pastāv (ar domu reāli strādā) tādi cilvēki no tavas 1. specializācijas kategorijas?

T.i. raksta tīru html'u, css'u un varbūt JS, bez nekādas php koda rakstīšanas? Tas pats daļēji ar 2. kategoriju - rakstīt servera puses kodu, neatbildod par klienta puses kodu. Tur gadījumā nesanāk bardaks ar to, kurš kuram kodu pielāgo ar visiem id, POST/GET formu name vērtībām, templeitu sadalījumiem/fragmentiem?

Ja tā tiešām notiek, tad tas mani pamatīgi izbrīna.

Link to comment
Share on other sites

bubu, Tu šeit runā par AJAX laikam? Nu patiesībā arī klienta puses programmētājam ir jāparzina pamatlietas server programmēšanā.

Formula vienkārša:

Katra līmeņa speciālists pārzina pamatlietas no tieši sev saistītā līmeņa (blakus specializācijas).

Link to comment
Share on other sites

bubu tādā gadījumā - par ko tu runā? Profesionālās web aplikācijās tak ir nošķirti šie jēdzieni - dati, biznesa loģika, prezentācija. :P

Es nesaprotu tādā gadījumā par ko Tu runā, manuprāt, klienta puses koderim (html,css,javascript) var būt arī tumša bilde par datubāzēm. ;)

Link to comment
Share on other sites

Nu mums kādu laiku atpakaļ bija pieņemts viens html/css/js darbonis, kas arī šo to zīmēja. Nelaime gan vairāk bija pašā cilvēkā, kam bija problēmas ar darbu nobeiguma fāzēm. Bieži vien fināla fāzē uzradās kādi iemesli, kāpēc viss bija jāpārbūvē.

 

Bet fakts kā tāds, ka tādi 1. kategorijas speciālisti ir un tiek izmantoti vispār ir :)

Link to comment
Share on other sites

Es saprotu, ka var būt tā tumšā bilde par datubāzēm tavam klienta puses koderim.

Bet tā kā tu sākumā tur raksti, ka patlaban web jomā noslāņojas tavas uzskaitītās specializācijas - tad nu es arī brīnos, vai tiešām un kur tādas specializācijas ir novērojamas praksē? Jo es nespēju iedomāties kā normāli varētu developēt, ja tu stingri raksti tikai php kodu, bez tiešas iespējas veidot/mainīt html/css kodu. Reāli taču php kods diezgan atkarīgs no html koda (formas, teimpleiti, struktūra) Un arī otrādi - kā vienu organizēsi, tā otram būs jāpielāgojas. Un pie noteiktām izmaiņām vienā, otrs arī mainīsies.

 

Savā darbā neskaitāmas reizes ir bijis tā, ka viena paliela ietvaros vienas fīčas implementēšanai paiet mēnesis (kaut reāli vajadzētu max nedēļu) tikai dēļ tā, ka tu nevari pamainīt kodu citā softa daļā (savā viss jau uztaisīts), jo par to atbild un kodu maina kolēģis blakus istabā. Un viņam esot patlaban savādakas prioritātes, ko implementēt. Ja man mēnesis jāgaida, lai kārtīgi notestētu savu uzrakstīto kodu, jo tā darbināšana atkarīga no kolēģa, kurš iekavējas, tad diezgan bremzējošs tas pasākums izvēršas. Ne es automātiskos testus nevaru palaist, ne arī kodu iečekot versiju kontroles repozitorija trunk'ā, jāstrādā branch'ā. Bet nu šajā gadījumā problēma bija diezgan švaka organizētība projektā.

 

Tāpēc arī jautāju - vai tiešām tā patlaban notiek? Vari dot reālus konkrētus projektu piemērus iz dzīves, kuros tā notiek?

Ja tā tiešām notiek, tas savā ziņā noteikti ir pluss. Diezgan interesanti, bet nu es īsti nespēju iztēloties cik pedantiskai tur jābūt organizētībai un pieejai tam. Varbūt es maldos, un tas nav ar tik lielām atkarībām kā es iedomājos - jo es saku, web jomā es nedevelopēju vispār, tāpēc nezinu kā tas notiek reāli.

Link to comment
Share on other sites

bubu - web vai ne-web jomā, bet parasti lielākoties visur ir vizuālā puse, biznesa loģika un datu puse! :P Ja runājam par apjomīgiem projektiem... Protams, programmēšanas valodā kā Java, tas viss saplūst vienā...

Bet webā gan to var nodalīt diezgan smuki, tikai jāmāk. :P Ar specializāciju es domāju, ka tomēr tāds cilvēks, kas jēdz tikai html/css/javascript - darbus dabūs, bet tie būs šauri specializēti un neregulāri... Tomēr ir jājēdz php jeb programmēšanas puse un ir jājēdz http protokols utt. Nu ir jājēdz blakus jeb saistītie novirzieni, kā jau teicu! :P

Vienkārši - varbūt tu pats par sevi tā domā, bet šaubos vai esi universāls speciālists! ;) Ir noteikti jomas, kur jēdz vairāk un ir jomas, par kurām jēdz mazāk (un izvairoties no problēmām par tām paklusē ;)

 

Šobrīd reāli man šķiet, situācija ir diezgan trula - piemēram, es neuzskatu konkrēti ne par vienas valodas programmētāju (jo es protu programmēt uz vairākām), bet visā visumā uzskatu sevi par web puses programmētāju, kas arī ir plašs jēdziens, jo zem tā var palikt apakšā daudz ko... Es arī neuzskatu sevi par klient puses programmēšanas ekspertu, bet kāpēc tad es pamācu vienu cilvēku, kurš uzskata sevi par web programmētāju - es viņam reāli palīdzēju saitaisīt vairākas būtiskas fīčas! :P Kāpēc tad tā? Manuprāt, atbilde ir viena - pārāk maz ir definēts, kas konkrētas profesijas pārstāvjiem jāzin un jāmāk.

Reāli specializācija tikai palielina konkurenci, jo zināt vienu lietu ir krietni vieglāk, nekā zināt 3 lietas! Līdz ar to - palielinās konkurence katrā jomā. Tā tas ir jau, piemēram, Rietumeiropā. Starp citu - tas lielākoties ir izdevīgi darba devējam, jo kopsumma tomēr sanāk lētāk - katrs cilvēks dara savu darbu, bet viņš ir spiezts to izdarīt labi, lai nezaudētu, jo var atrast viegli speciālistu vietā. Universālu (savā sfērā protams, nevis šaurā specializācijā) speciālistu ir maz, jo ne vēlmes, ne spēju lielākai daļai cilvēku to visu apgūt nav! :P

 

Es, piemēram, arī patiesībā labi māku latviešu valodas gramatiku, protu 2 svešvalodas diezgan labi (neskaitot krievu) un saprotu vēl vairāk nekā viduvējais cilvēks par vēsturi un ģeogrāfiju (parastajiem erudīcijas konkursiem pa tv lielākoties atbildes zinu jau uzreiz pēc to nosaukšanas un esmu šausmīgi pārsteigts, ka tur aizgājušies tik ilgi domā atbildes :( ), bet tik un tā neuzskatu sevi par universālu speciālistu. Par laimi - līmenis nav tik strikts un augsts.

 

bubu sevi noteikti uzskata par universālu, tāpēc aizstāv savu pozīciju. Nu pa lielam vari būt speciālists vairākās jomās, bet tā riktīgi labi (pa 98%) vai zini kādu konkrēto no savām šaurajām sfērām?

Edited by Java
Link to comment
Share on other sites

Nesaprotu, kas ar tevi Java.. vienmēr no topika konteksa jāizvelk kautkādi personiski vērtējumi. Kāds šim topikam sakars ar mani? Kādu pozīciju es vispār aizstāvu? Pastāsti man lūdzams, jo es pats to nesaprotu, kādu pozīciju man jāaizstāv.

Neuzskatu sevi par nekādu universālu. Doh. Neesmu to nekad apgalvojis. Ļoti labi zinu jomas, kurās maz jēdzu. Un tajās arī nelienu. Strādāju jomā, kurā labi jēdzu, un to arī labi māku darīt, kas ikdienā jādara. Mani jautājumi nemaz nebija par mani. Kā ar tevi sāk diskutēt par tēmu, tā aizbrauc viss topiciņš oftopiciņā.. pat tevis paša taisītais.

 

Viss, ko es gribēju zināt, kāpēc tev radās tāda klasifikācija tajos 5 punktos. No kurienas tāds pamats? Cik tu te raksti pēdējā postā - tu visu raksti nākotnes formā. Cik labi būtu, ja būtu šitā un tā. Būtu lētāk un izdevīgāk, un gudrāk. Tātad es pareizi saprotu, ka tavs topiks ir par to, kā tu uzskati kā ir jābūt tavuprāt visai situācijai (t.i. no zila gaisa izzīlētai), nevis par to, kā patlaban ir?

Link to comment
Share on other sites

`Content (html)`? Ūja? Content ir dati. Html+css - presentation. `Behaviour (javascript, tai skaitā ajax)`? Ūja? Vai tikai? Behaviour ir darbības, procesi, ko veic ar datiem, neatkarīgi no valodas. Ar javascriptu var manipulēt css un html (DOM), bet to pašu var darīt arī ar PHP un ar dajebkuru citu valodu - tas viss pieder pie presentation. No tiem pieminētiem trīs slāņiem sastāv viss softs, ne tikai client-side.

 

Kāpēc programmētājs būtu jāklasificē sīkāk kā web-programmētājs? Protams, pasakot "web-programmētājs" ir skaidrs, kādā vidē viņš darbojas (un tas ir labi) un tikai - jo fundementāli nekādas atšķirības no "parasta" programmētāja manā skatījumā nav. Ir nepieciešams apgūt web vides specifiku, taču tas ir relatīvs sīkums. Drīkst argumentēti oponēt. Vai varbūt ar web-programmētājiem tu domāji nevis programmētājus, kuri izstrādā web-bāzētas aplikācijas, bet tos pašu client-side programmētājus (vai programmētājs šeit ir īstais vārds es vēl pats nezinu, droši vien?) - lietotāja interfeisa izstrādātājus?

 

Jā, un tagat izklausīšo pēc dikka, jo teikšu, ka esmu visnotaļ spēcīgs visās tevis pieminētās kategorijās. Citās vairāk, citās mazāk, bet *labi* orientējos visās. Labi es domāju tā, lai ar tām zināšanām pelnītu naudu.

Link to comment
Share on other sites

... manuprāt, klienta puses koderim (html,css,javascript) var būt arī tumša bilde par datubāzēm. ;)

Reti gadijumi manuprāt.

Bet vispār man arī nepatika ka brauc virsū bubu ja ko pakomentē ne pa Tavam prātam:(

Vēl jau ir arī programmētāji, kuri programmē dzelžus, tie gan ar web izstrādi nav saistīti.

5) dzelžu speciālisti - parūpēsies par visu, kas saistīts ar dzelžiem un vadiem un uzturēs visas šīs lietas - šeit laikam ir vislielākā izvēle, jo derēs jebkurš dzelžu spečuks, kas tomēr nav maz, jo tās lietas, atšķirībā no programmēšanas, prasa vienkārši tehnisku pieeju visiem, nevis krietni abstraktu domāšanu (tikai mans viedoklis).

Labi ka tikai tavs viedoklis. Palasi par to pašu datoru modingu kaut vai.

Ir arī veči, kuri programmē dzelžus specifiskām klienta vajadzībām par sakarīgām naudiņām.

Lai gan mani var neņemt par pilnu, es neesmu nekāds pro web lietās.

Edited by mounkuls
Link to comment
Share on other sites

Es iedalītu šo sfēru 2 daļās:

 

1)Programmētāji - jāzin viss sākot no DB, PHP un beidzot ar CSS, HTML un JS. Šis cilvēks kodu raksta maz, galvenais uzdevums ir izplānot projekta uzbūvi, ko darīs PHP, ko MYSQL, ko JS, ko vajadzēs pieprogrammēt C, kā moduli, jo PHP vai MYSQL to nespēj realizēt. Apvieno sevī zināšanas no JAVAs iedalījuma 1., 2. un 4. punkta.

Cilēka personība: Radošs.

 

2)Koderi - pārvērš precīzus programmētāja norādījumus kodā. Var būt sadalīts pēc JAVAs norādītā 1., 2., 4. Bet praksē vairāk ir sadalīts šādi:

a)Dizaineris - grafikas, CSS

b)Fron-End - HTML, CSS, JS, PHP (HTML ģenerēšana, user input apstrāde, templeiti)

c)Back-End - PHP, SQL (klases, biznesa loģika)

Cilvēka personība: Pedantisks.

 

 

3. un 5. mūsdienās ir jau pavisam maz saistīts ar webu. Sekojot līdzi ASV blogos notiekošajai WEB attīstībai, esmu novērojis, ka pat lieli projekti (vairāki miljoni unikālu mēneša lietotāju), izmanto hostinga pakalpojumus, tai skaitā suportu un hostinga firmas adminus.

Link to comment
Share on other sites

bubu, mums šeit tā ir sadalīts. Programmētājs, html salicējs un dizainers. Html salicējam ir tik vien jāzina kā izsaukt kādu objektu, piem. objekts shop, izsaucot objektu var pielikt papildu parametrus, piem. rādīt preces, rādīt grozu, kārtot preces alfabētiskā secībā utml. Un tad atliek tik templeitos sarakstīt html kodu. Protams, programmētājs<->html salicējs konsultējas pēc katra jauna objekta izveides, vai jaunu fīču izveides.

Link to comment
Share on other sites

bubu - tie nebij nekādi uzbraucieni, bet gan vienkārši jautājums - interesē, cik šaurās sfēras zini labi? Noteikti tur arī var izveidot sava veida stabiņa grafiku, kur viena joma (kāda programmēšanas valodas vai kas tml.) ir visaugstāk - zin vislabāk. Un par specializācijām - manuprāt, tā var iedalīt, lai gan neesmu 100% par to pārliecināts.

 

marrtins - es pieminēju klasisko web pārlūka modeli, kas sastopams vairumā gadījumos web programmēšanā - piedāvāju tev plašākus kompetentus citātus, lai tev nav jāizdomā pašam:

The content layer is always present. It comprises the information the author wishes

to convey to his or her audience, and is embedded within HTML or XHTML markup

that defines its structure and semantics. Most of the content on the Web today is

text, but content can also be provided through images, animations, sound, video,

and whatever else an author wants to publish.

The presentation layer defines how the content will appear to a human being who

accesses the document in one way or another. The conventional way to view a web

page is with a regular web browser, of course, but that’s only one of many possible

access methods. For example, content can also be converted to synthetic speech for

users who have impaired vision or reading difficulties.

The behavior layer involves real-time user interaction with the document. This

task is normally handled by JavaScript. The interaction can be anything from a

trivial validation that ensures a required field is filled in before an order form can

be submitted, to sophisticated web applications that work much like ordinary

desktop programs.

 

codez - tava izpratne, tavā stilā. Protams, ka tu vienmēr iedalīsi visus cilvēkus "sabiedrības krējumā" (pie kura pieskaiti kļūdaini arī sevi) un "lūzeros" - tāpēc jau tev sanāca tik vienpusīgs dalījums.

Nepiekrītu - programmētājs pēc tava iedalījuma ir vienkārši pieredzējušāks koderis, kas pratis izlaizīt sev augstāku vietiņu - grupas vadītāja vietu uzņēmumā. Kāds radošs? Mani ir vadījuši tādi "speci", kuriem no radošuma ne smakas nav. Nejauc lietas, pirmkārt, cilvēki ir dažādi un truli ir jaukt profesionālismu ar personas īpašībām.

Vienkārši, ir programmētāji, kas vairāk zin un ir pieredzējuši, ir programmētāji, kas mazāk zin, bet viņiem labi strādā galva, ir programmētāji, kam izcili strādā galva un viņi daudz zin (tādi ir vispieprasītākie parasti) un ir programmētāji, kam neko īpaši labi galva nestrādā, bet kas ar uzcitību panāk to, ko viņi dara. Bet tas ar tāds nosacīts un neprofesionāls iedalījums! :P Nepatīk man iedalīt šitā, iemācies savu sfēru perfekti un būsi labs savā sfērā, protams, nekad tik labs, cik talantīgs tavā vietā un codez - tici vai nē, bet tu neesi talantīgs! :D

 

 

Vēl es gribētu piebilst, ka uzskatu, ka tomēr jebkuras no šīm atsevišķas jomas speciālistiem ir jāpārzina vismaz "intermediate" līmenī pārējās jomas (izņemot dzelžus - tos var arī basic, jo tur gan saistība tāda attāla, loģiski padomājot), attiecībā ja savu konkrēto jomu viņš zin uz expert vai guru līmenī! :P

 

Lab, bet ja tā padomā reāli - pirmās divas specializācijas pēc mana iedalījuma apvienojas smuki vienā un saucas - "programmētājs"! Tomēr laikam tā būs labāk un tas lai paliek galējais variants. Tas, ka programmētājs ir neprofesionāls kādā no savām jomām, tā jau ir viņa paša problēma...

Edited by Java
Link to comment
Share on other sites

Nejauc lietas, pirmkārt, cilvēki ir dažādi un truli ir jaukt profesionālismu ar personas īpašībām.

 

Four types of workers:

 

Hares: Idea people who think randomly. They love to come up with ideas. They usually

get bored with the idea once they’ve thought it through. They’re creative. Others may

complain that they don’t have a lot of follow-through

 

Owls: These people love to prioritize and plan a strategy for success. When you tell them

an idea, they instantly tell you the next steps to make it happen. They are go-getters

who like to make connections and create action plans.

 

Turtles: These people believe that slow and steady wins the race. They are naysayers,

who are suspicious of new ideas. They believe in tradition, proven solutions, and not dong

anything risky. They are good at pointing out problems and seeing around corners to know

what might go wrong. They allow the team to simulate most failure at the concept stage,

thus saving time and money.

 

Squirrels: These detail-oriented people are great at step-by-step work. They think and act

in a methodical, logical way. They keep things organized and running smoothly. Give them

their exact steps and expectations and they perform beautifully.

 

Katrs pēc sevis var atzīmēt kurai grupai pieder.

Es, piemēram, esmu zaķis.

Link to comment
Share on other sites

×
×
  • Create New...