Jump to content

Gribu būt programmists!


BRT2008
 Share

Recommended Posts

Labu dienu!

Pirms pāris mēnešim nolēmu, ka gribu kļūt par programmētāju. Pilnīgi nopietni. Pa šo laiku pašmācības ceļā apguvu Python pamatus. Zemāk pievienoju pāris savas programmas, lai parādītu savu spēju līmeni uz doto brīdi.

 

Gribētu pajautās pieredzējušiem programmētājiem, kur virzīties tālāk? Kāda veida programmēšana ir vai varētu būt pieprasīta tuvākajā laikā? Varbūt tepat Rīgā ir kādi kursi ( saprotams, ne tādi, kas māca delfi sortēt massīvus, bet kaut-ko kam ir reāls pielietojums ) ? Varbūt ir vērts iegūt kādus sertifikātus, ja jā, tad kādus? etc.

 

Iepriekš pateicos! :drinks:

 

 

valūtas kalkulators

 

fc022922d6b5.jpg

 

from tkinter import *
import urllib.request
###################################### Подключаемся к нету, узнаём курсы валют! ##################
page = urllib.request.urlopen('https://ib.swedbank.lv/private/d2d/payments/rates/currency')
text = page.read().decode('utf8')
lvl=1
eur=text[text.find('EUR ')+55:text.find('EUR ')+62]
usd=text[text.find('USD ')+61:text.find('USD ')+68]
rur=text[text.find('RUB ')+67:text.find('RUB ')+74]
##################################################################################################
app = Tk() # создаём основное окно
app.title("Currency Calculator")
app.geometry('302x355+600+350')
carselect1 = StringVar() # создаём переменную для выбора валют Nr1
carselect2 = StringVar() # создаём переменную для выбора валют Nr2
carselect1.set('LVL') # валюта Nr1 = LVl
carselect2.set('EUR') # валюта Nr2 = EUR
incar = StringVar() # создаём переменную для ввода суммы валюты Nr1
outcar = StringVar() # создаём переменную для вывода суммы валюты Nr2
incar.set(1) # сумма валюту Nr1 = 1
def calculate():
   try:
       x = int( incar.get() )
       if carselect1.get() == 'LVL': c1 = float(lvl)
       if carselect1.get() == 'EUR': c1 = float(eur)
       if carselect1.get() == 'USD': c1 = float(usd)
       if carselect1.get() == 'RUR': c1 = float(rur)
       if carselect2.get() == 'LVL': c2 = float(lvl)
       if carselect2.get() == 'EUR': c2 = float(eur)
       if carselect2.get() == 'USD': c2 = float(usd)
       if carselect2.get() == 'RUR': c2 = float(rur)
       res = (x*c1)/c2
       print(x,'*',c1,'/',c2,'=',res)
       outcar.set(round(res,4))
   except:
       print("Error, wrong format!")
Entry(app,textvar=incar).grid(row=1, column=1, padx=10, pady=10)
Label(app, text = '=').grid(row=1, column=2)
Entry(app,textvar=outcar).grid(row=1, column=3, padx=10, pady=10)
curlist = ['LVL','EUR','USD','RUR'] 
OptionMenu(app,carselect1,*curlist).grid(row=2, column=1, padx=10, pady=10)
OptionMenu(app,carselect2,*curlist).grid(row=2, column=3, padx=10, pady=10)
Button(app, text = "   Calculate!   ", command = calculate ).grid(row=3, column=1, padx=10, pady=10)
biglist = Listbox ( app  )
biglist.grid(row=4, column=1, padx=10 ,pady=15)
biglist.insert(END, "LVL = "+str(lvl))
biglist.insert(END, "EUR = "+eur)
biglist.insert(END, "USD = "+usd)
biglist.insert(END, "RUR = "+rur)
calculate()
app.mainloop()

 

Tetris

 

bbbe3d442e55.jpg

 

from tkinter import *
import time
import random
app = Tk()
app.title("TETRIS 101")
app.geometry('305x426+600+300')
canvas = Canvas(app, width=304, height=392)
canvas.pack(side=TOP)
svar= 0
score=StringVar()
score.set('Tetris %s' % svar)
Label(app, textvariable = score ).pack(side=BOTTOM,pady=10)
blocks=[] 
freeblocks=[]
def populate_with_free_blocks():  # функция, наполняющая канвас пустыми кубиками, для фона.
   freeblocks=[]
   for y in range(3,393,30):
       for x in range(3,300,30):
           freeblocks.append(canvas.create_rectangle(x,y,x+28,y+28, tag='free',fill='#f7f7f7',outline='#b8cfdc'))
   for x in range(3,300,30):
           freeblocks.append(canvas.create_rectangle(x,y+30,x+28,y+30+28, tag='stopped',fill='#64899d',outline='#64899d'))
def makerandomfig():            # функция, выбирающая случайным образом, какую из 7 фигуру создавать.
   global figbox,color,ingame
   if ingame == 'play':
       randm = random.randrange(1,7)
       if randm == 1 : figbox =[1,0,0,0,   1,0,0,0,   1,1,0,0,   0,0,0,0,]; color='#AED4B0'
       if randm == 2 : figbox =[0,1,0,0,   0,1,0,0,   1,1,0,0,   0,0,0,0,]; color='#9BBE9D'
       if randm == 3 : figbox =[1,1,0,0,   1,1,0,0,   0,0,0,0,   0,0,0,0,]; color='#916959'
       if randm == 4 : figbox =[0,1,0,0,   1,1,1,0,   0,0,0,0,   0,0,0,0,]; color='#79ABCE'
       if randm == 5 : figbox =[1,0,0,0,   1,0,0,0,   1,0,0,0,   1,0,0,0,]; color='#E93200'
       if randm == 6 : figbox =[1,0,0,0,   1,1,0,0,   0,1,0,0,   0,0,0,0,]; color='#F2AC29'
       if randm == 7 : figbox =[0,1,0,0,   1,1,0,0,   1,0,0,0,   0,0,0,0,]; color='#E99800'    
       makefig('none')
   elif ingame == 'gameover':
       canvas.create_rectangle(20,75,284,155, fill="white",outline="#b8cfdc")
       canvas.create_text(151,100, text="GAME OVER!", fill="purple", font=("Elephant", "24"))
       canvas.create_text(151,135, text="YOUR SCORE IS %s" % svar , fill="purple", font=("calibri", "12"))
def makefig(rotate):       # функция, создающая новую фигуру или поворачивающая уже имеющеюся.
   global figbox,color

   if rotate == 'left':   # будем поворачивать
       y=500;randomx=500
       falling = canvas.find_withtag('falling')
       for f in falling:
           if canvas.bbox(f)[1] < y : y =canvas.bbox(f)[1]
           if canvas.bbox(f)[0] < randomx : randomx =canvas.bbox(f)[0]+1
       canvas.delete('falling')
       canvas.update()
   else:                    # делаем новую
       randomx = random.randrange(3,213,30)
       y=0
   if figbox[0] == 1: blocks.append(canvas.create_rectangle(randomx,y,randomx+28,y+28, tag="falling",fill=color,outline='#303030'))
   if figbox[1] == 1: blocks.append(canvas.create_rectangle(randomx+30,y,randomx+58,y+28, tag="falling",fill=color,outline='#303030'))
   if figbox[2] == 1: blocks.append(canvas.create_rectangle(randomx+60,y,randomx+88,y+28, tag="falling",fill=color,outline='#303030'))
   if figbox[3] == 1: blocks.append(canvas.create_rectangle(randomx+90,y,randomx+118,y+28, tag="falling",fill=color,outline='#303030'))
   if figbox[4] == 1: blocks.append(canvas.create_rectangle(randomx,y+30,randomx+28,y+58, tag="falling",fill=color,outline='#303030'))
   if figbox[5] == 1: blocks.append(canvas.create_rectangle(randomx+30,y+30,randomx+58,y+58, tag="falling",fill=color,outline='#303030'))
   if figbox[6] == 1: blocks.append(canvas.create_rectangle(randomx+60,y+30,randomx+88,y+58, tag="falling",fill=color,outline='#303030'))
   if figbox[7] == 1: blocks.append(canvas.create_rectangle(randomx+90,y+30,randomx+118,y+58, tag="falling",fill=color,outline='#303030'))
   if figbox[8] == 1: blocks.append(canvas.create_rectangle(randomx,y+60,randomx+28,y+88, tag="falling",fill=color,outline='#303030'))
   if figbox[9] == 1: blocks.append(canvas.create_rectangle(randomx+30,y+60,randomx+58,y+88, tag="falling",fill=color,outline='#303030'))
   if figbox[10] == 1: blocks.append(canvas.create_rectangle(randomx+60,y+60,randomx+88,y+88, tag="falling",fill=color,outline='#303030'))
   if figbox[11] == 1: blocks.append(canvas.create_rectangle(randomx+90,y+60,randomx+118,y+88, tag="falling",fill=color,outline='#303030'))
   if figbox[12] == 1: blocks.append(canvas.create_rectangle(randomx,y+90,randomx+28,y+118, tag="falling",fill=color,outline='#303030'))
   if figbox[13] == 1: blocks.append(canvas.create_rectangle(randomx+30,y+90,randomx+58,y+118, tag="falling",fill=color,outline='#303030'))
   if figbox[14] == 1: blocks.append(canvas.create_rectangle(randomx+60,y+90,randomx+88,y+118, tag="falling",fill=color,outline='#303030'))
   if figbox[15] == 1: blocks.append(canvas.create_rectangle(randomx+90,y+90,randomx+118,y+118, tag="falling",fill=color,outline='#303030'))
   dropping_block() 
def dropping_block():    # функция, роняющая фигуру
   global dropspeed
   dropspeed=0.01
   while ingame == 'play' :
       time.sleep(dropspeed)
       canvas.move( 'falling' , 0, 1)
       canvas.update()
       app.bind_all('<Key>', keydown)
       if canvas.bbox('falling')[3] % 30 == 2 :
           falling = canvas.find_withtag('falling')
           stopped = canvas.find_withtag('stopped')
           for f in falling:
               for s in stopped:
                   if (canvas.bbox(f)[3] == canvas.bbox(s)[1])and(canvas.bbox(f)[0] == canvas.bbox(s)[0]):
                       canvas.itemconfigure( 'falling' ,tag='stopped')
                       checkrows()
def fastdrop():                 # функция, роняющая все фигуру, после того как заполненный ряд был удалён
   for i in range(500):
       time.sleep(0.001)
       canvas.move( 'fastdrop' , 0, 1)
       canvas.update()
       fastdrop = canvas.find_withtag('fastdrop')
       stopped = canvas.find_withtag('stopped')
       for f in fastdrop:
           for s in stopped:
               if (canvas.bbox(f)[3] == canvas.bbox(s)[1])and(canvas.bbox(f)[0] == canvas.bbox(s)[0]):
                   canvas.itemconfigure( 'fastdrop' ,tag='stopped')
def checkrows():                  # функция, проверяющая все ряды на заполнение
   global svar, ingame
   for y in range(15,380,30):
       linelist = canvas.find_overlapping(10, y, 295,y+5)
       linechk=0
       for l in linelist:
           if canvas.itemcget(l,'tag') == 'stopped':
               linechk+=1
               if y == 15 : ingame = 'gameover'
       if linechk==10:
           for l in linelist:
               if canvas.itemcget(l,'tag') == 'stopped':
                   canvas.delete(l)
           stopped = canvas.find_withtag('stopped')
           for s in stopped:
               if canvas.bbox(s)[1] < y : canvas.itemconfigure(s,tag='fastdrop')
           fastdrop()
           svar +=1
           score.set('Tetris %s' % svar)

   makerandomfig()

def keydown(event):              # функция, 'при нажатии кнопки'
   global dropspeed,figbox,ingame
   if event.keysym == 'Left':   # двигаем фигуру влево
       oktomove = True
       falling = canvas.find_withtag('falling')
       stopped = canvas.find_withtag('stopped')
       for f in falling:   
           if canvas.bbox(f)[0] == 2 : oktomove = False
           for s in stopped:
               if (canvas.bbox(f)[2]-30 == canvas.bbox(s)[2]) and (canvas.bbox(f)[1] < canvas.bbox(s)[1]) and (canvas.bbox(f)[3] > canvas.bbox(s)[1]): oktomove = False
       if oktomove : canvas.move( 'falling' , -30, 0)

   if event.keysym == 'Right':   # двигаем фигуру вправо 
       oktomove = True
       falling = canvas.find_withtag('falling')
       stopped = canvas.find_withtag('stopped')
       for f in falling:
           if canvas.bbox(f)[0] == 272 : oktomove = False
           for s in stopped:
               if (canvas.bbox(f)[2]+30 == canvas.bbox(s)[2]) and (canvas.bbox(f)[1] < canvas.bbox(s)[1]) and (canvas.bbox(f)[3] > canvas.bbox(s)[1]): oktomove = False
       if oktomove : canvas.move( 'falling' , +30, 0)
   if event.keysym == 'Down': dropspeed=0.00001  # бросаем фигуру вниз
   if event.keysym == 'p':
       if ingame == 'play' :
           ingame = 'pause'
           canvas.create_rectangle(70,100,234,155, tag='pause', fill="white",outline="#b8cfdc")
           canvas.create_text(151,130, text="PAUSE",  tag='pause', fill="red", font=("calibri", "16"))
       elif ingame == 'pause' :
           canvas.delete('pause')
           ingame = 'play'
           dropping_block()
   if event.keysym == 'z': # поворачиваем фигуру
       if figbox == [1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,] : figbox = [0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,] ; makefig('left') ### if longthing vertical
       elif figbox == [0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,] :figbox = [1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,] ; makefig('left') ### if longthing horizontal
       else:
           a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]           ### creating temp.array
           for i in range(len(figbox)): a[i]=figbox[i]   ### assing values from 'figbox' to temp
           figbox[0]=a[8];   figbox[1]=a[4];   figbox[2]=a[0];   figbox[3]=0   ### turn everything right
           figbox[4]=a[9];   figbox[5]=a[5];   figbox[6]=a[1];   figbox[7]=0   ### turn everything right
           figbox[8]=a[10];  figbox[9]=a[6];   figbox[10]=a[2];  figbox[11]=0   ### turn everything right
           figbox[12]=0;     figbox[13]=0;     figbox[14]=0;     figbox[15]=0   ### turn everything right
           if (figbox[0]==0) and (figbox[4]==0) and (figbox[8]==0) and (figbox[12]==0):  ### if first column is empty
               for i in range(len(figbox)): a[i]=figbox[i]   ### assing values from 'figbox' to temp
               figbox[0]=a[1];   figbox[1]=a[2];   figbox[2]=a[3];   figbox[3]=0   ### move one col. left
               figbox[4]=a[5];   figbox[5]=a[6];   figbox[6]=a[7];   figbox[7]=0   ### move one col. left
               figbox[8]=a[9];   figbox[9]=a[10];  figbox[10]=a[11]; figbox[11]=0   ### move one col. left
               figbox[12]=a[13]; figbox[13]=a[14]; figbox[14]=a[15]; figbox[15]=0   ### move one col. left
           makefig('left')
ingame = 'play'
populate_with_free_blocks()
makerandomfig()
app.mainloop()

Link to comment
Share on other sites

  • Replies 159
  • Created
  • Last Reply

Top Posters In This Topic

  • MarisO

    10

  • BRT2008

    19

  • 0xDEAD BEEF

    11

  • Mastermind

    9

tu gribi būt kruts programmētājs vai tāds kurš sērīgi baksta DB priekš weba un citādas figņas ?

  • Patīk 1
  • Slikti! 1
Link to comment
Share on other sites

Guest drunk_lizard

pieGdienaaaaa!!1!111!!

komenti krieviki # epic fail

Labots - drunk_lizard
  • Patīk 2
  • Slikti! 3
Link to comment
Share on other sites

Grossmeister

Varbūt plaģiāts , a varbūt viņš arī tajā forumā arī ir reģistrējies ?

 

P.S. Nacionālā piederība jau šeit nav jāuzrāda .

Labots - Grossmeister
  • Patīk 1
  • Slikti! 1
Link to comment
Share on other sites

Jeij, jau nobrīnījos, vai ta tiešām nebūs šodien nekas :mrgreen::jester: autors pats ir viens liels plaģiāts...

Labots - Bart
  • Patīk 1
  • Slikti! 2
Link to comment
Share on other sites

versatile

Nez, paskatoties datumu taja forumaa, niku utt izskatas ka varetu but legit.

vienigi mulsina kapec komentari 2 valodas.

 

topika nosaukums "programmists" ari ir tipisks cilvekiem ar dzimto krievu val.

  • Patīk 1
  • Slikti! 1
Link to comment
Share on other sites

Es nebiju ieskatiijies ka komentaari krieviski. epic fail :D

 

Autor: pasaulei būs labāk ja tu par programmētāju nekļūsi, dzer indi...

  • Patīk 1
  • Slikti! 1
Link to comment
Share on other sites

Guest drunk_lizard

hmm, tomeer nav plagjiaats :>

anyway vunderkind ir dzimis :>

  • Patīk 2
Link to comment
Share on other sites

Devil_Inside

zeds, komentāri krieviski vēl būtu pieņemami, bet nezkāpēc ir arī angliski.

 

Es vēl neticu vunderkinda teorijai. Varbūt daļa no tā visa ir ar tā vingrad foruma palīdzību taisīta, bet daļa tomēr ir vākta no kaut kādiem gatavajiem koda piemēriem.

Link to comment
Share on other sites

BRT2008
(labots)

>>> Jeje, jau nobrīnījos, vai ta tiešām nebūs šodien nekas :mrgreen::jester: autors pats ir viens liels plaģiāts...

 

Da es tas esmu, pats uzrkstīju. Skat vēlreiz. http://forum.vingrad.ru/forum/topic-294287/anchor-entry2123691/0.html

 

>>> tu gribi būt kruts programmētājs vai tāds kurš sērīgi baksta DB priekš weba un citādas figņas ?

 

Nu, ideālā variantā, protams gribētos jo 'krutāks' jo labāk. :)

 

>>> 3 mēnešus mācijies un tādu kodu uzrakstīji???

 

Ēēē... tādu, tas ir domāts labu vai sliktu?

 

>>> Neticās, ka pats pa pāris mēnešiem esi iemācījies šitādus kodus rakstīt uz pitona.

 

Nu, iemācījos gan. :) Ļoti palīdzēja grāmata 'head first programming'.

 

>>> Iesaku apdomāt, kādā virzienā tu gribi strādāt. 3 varianti:

 

Šeit man tā uzreiz būtu grūti izvēlēties, jo vēl pārāk maz zinu par to visu.

 

>>> Dzelžu programmētājs (tad pēti ASMus, procesorus utt)

 

Ēee... īsti nav zināšanas, kas tas viss tāds ir. :/

 

>>> Aplikāciju programmētājs (der jebkas, kaut tas pats pitons, vai C/C++)

 

Visdrīzāk jau kaut kas uz šito pusi...

 

>>> Web-programmētājs (tad vajadzēs izpētīt vairākas tehnoloģijas; der tas pats Pitons, vai PHP utml)

 

Cik dzirdēju, ir ļoti daudz webprogrammētāju, sakara ar ko īsti nopelnīt šajā virzienā ir sarežģīti. Vai es kļūdos?

 

>>> Personīgi iesāku papētīt tādas lietas, ka algoritmizācija, bināra/hex sistēmas, netraucētu atsvaidzināt/uzlabot matemātikas zināšanas.

 

Varbūt varat ieteikt kādas konkrētas grāmatas/kurusus? Jā, ka algoritmizācija ir svarīga es sapratu rakstot tetrisu, kamēr nebiju vispirms uzrakstījis algoritmu, kādām funkcijām ir jābūt un ko tam ir jādara, kodu nācās pārrakstīt reizes 3. :)

 

>>> zeds, komentāri krieviski vēl būtu pieņemami, bet nezkāpēc ir arī angliski.

 

Oriģināli programmējot rakstīju komentus angliski, tīri priekš sevis. Pēcāk izliekot uz vingradu pierakstīju krieviski, lai tur būtu visiem interesentiem skaidrs, ko kāda funkcija dara.

 

Gatavu kodu ņēmis nebiju, par to, kā ar tkinter canvasu darboties izlasīju šeit http://infohost.nmt.edu/tcc/help/pubs/tkinter/canvas-methods.html

Labots - BRT2008
  • Patīk 1
Link to comment
Share on other sites

Ronalds789

pievienojos DL,

vunderkinds dzimis

 

laikam daudz brīvā laika ja tik atri iemācijies, vai arī jau ir bijusi pieredze ar citām p.valodām?

īstenībā ja iemācies vienu, saproti būtību, sintaksi, nav grūti tālāk adoptēties pie nākošās valodas

:)

Labots - Ronalds789
Link to comment
Share on other sites

0xDEAD BEEF

Emm forši! Man patīk, kā viņi plūdoši krīt! Ar kuru pogu var pagriezt figūras?

Well done! Cik ilgi rakstiji?

Beefs

 

PS - nu nevajag jau arī tik skeptiski uz to raudzīties. Pats, kad sāku 12 gadu vecumā kodēt, tad līdzīgus sasniegumus pēc 3 mēnešiem varēju rādīt.

Beefs

Link to comment
Share on other sites

0xDEAD BEEF

.. :( tikai latviski.. :( ... un vispār daudz neliku komentārus! :(

 

Mums vajag čelendžot čali! :)

Piemēram - lai aši uzkodē (2 stundu laikā), ka ir kāda īpašā figūra ®, kuru nevar rotēt! :D

 

Beefs

Link to comment
Share on other sites

BRT2008

>>> laikam daudz brīvā laika ja tik atri iemācijies, vai arī jau ir bijusi pieredze ar citām p.valodām?

Vēl bērnībā ar Flash niekojos. Tad 2003ajā biju vienu kursu uz programmētājiem nomācījies TSI, tā kā kaut-kur zemapziņā jau bija tie pamati, funkcijas, ciklu u.t.t.

 

>>> Autor, tu no svešiem kodiem kopēji tikai komentus?

Kā jau teicu, visu kodu biju pats uzrakstījis. Angliskos komentus rakstīju priekš sevis, krieviskos pēcāk pieliku vingradam.

 

>>> ir totāls BS.

Nu... i ko es tev te varu atbildēt?

 

>>> Emm forši! Man patīk, kā viņi plūdoši krīt! Ar kuru pogu var pagriezt figūras?

Nu kaut viena laba atsauksme! :) Ar 'z' pogu pagriest. Ar bultiņu uz lejo nomest. 'p' - pause, 'r' - reset.

 

Rekstīju nu ne tā ka no rīta līdz vakaram, bet kādas 10 dienas aizgāja uz galējo versiju.

 

pēc 2 st. būšu atpakaļ uz sataisīšu jums krītošas figūras. :)))

Link to comment
Share on other sites

Delphin

Nedaudz offtopic'a, bet vai kādam nav x86 assembler'a mācību materiāli no vietējām augstskolām LV valodā (to vecums nav svarīgs).

Link to comment
Share on other sites

Es arī pievienojos, ka šitāds pēc 3 mēnešiem nav nekas neiespējams, it sevišķi, ja tam var veltīt daudz laika, un cilvēkam domāšana ir ar pareizu noslieci.

 

Nu, ko lai saka... Ja nemelo, un pa 3 mēnešiem esi tik tālu ticis saviem spēkiem, tad skaidrs, ka tā lieta interesē, citādi pacietība neizvilktu. Tas ir labi, tas Tavas izredzes kļūt par programmistu padara itin labas. :) Tālāk ieteiktu mazliet apgūt vairāk par to, kas tas dators tāds ir, un kā viņš strādā. ASM un x86 arhitektūru nevajag, tas biki par traku, bet iesaku apgūt C/C++ un uzrakstīt tur kaut ko sakarīgu. Var arī Pascal, ja tas šķiet tuvāks sirdij. Šīs valodas ir ļoti pamācošas ar to, ka nav gatavu konstrukciju sarežģītām operācijām, bet daudz kas ir jādara "pašam ar roku" - rodas sajēga par to, kas īsti datoram ir viegli, un kas nav. C/C++ vēl pār paskālu būs tāda priekšrocība, ka to sintakse ir plaši kopēta daudzās citās populārās valodās (Java, C#, JavaScript, PHP, u.t.t.). Apgūstot to būs vieglāk apgūt valodas ar līdzīgo sintaksi.

 

Vēl es iesaku arī paņemt priekšā olimpiāžu uzdevumus un parisināt tos (LIO, Olimps, Usaco, u.c.). Vispār, ja esi vēl skolnieks (citādi nemāku izskaidrot lielo brīvā laika daudzumu), tad noteikti piedalies olimpiādēs! :)

 

Šobrīd vissvarīgākais ir "iegrozīt domāšanu pareizajās sliedēs" un gūt aptuvenu sajēgu par to, kā strādā dators. Pēc tam varēs domāt tālāk.

  • Patīk 2
Link to comment
Share on other sites

Vēl bērnībā ar Flash niekojos. Tad 2003ajā biju vienu kursu uz programmētājiem nomācījies TSI, tā kā kaut-kur zemapziņā jau bija tie pamati, funkcijas, ciklu u.t.t.
Ā, nu, tad jau nav gluži 3 mēnešu pieredze. :) Tas jau, starp citu, pašā sākumā arī ir tas grūtākais - apjēgt pamata konstrukcijas un kā tās pareizi pielietot. Tāpēc arī tie 3 mēneši izklausās tik fantastiski. Bet, ja jau aptuvena sajēga bija, tad tā ir cita lieta. :)
Link to comment
Share on other sites

Delphin

, jā, krieviem ir daudz labu tutoriāļu, bet diemžēl RU šoreiz nebūs risinājums. ENG arī ir kaudze tutoriāļu, bet tie ne tuvu šajā sfērā tik labi, kā krievu autoriem (neiemidzina jau pēc 10 lapas :D). Ja tomēr ir kāds labs ENG tutroiālis, kuram kāds persnīgi no 0 izgājis cauri, var saukt to par labu - lūdzu linku/PDF'u studijā :keep_order:

Link to comment
Share on other sites

Vilx- jau nosauca avotus, kur var meklēt uzdevumus, kā attīstīt savas algoritmiskās programmēšanas prasmes. Diemžēl realitāte ir tāda, ka par to naudu maksā krietni retāk (lai gan nebūt ne sliktāk) kā par prastākām lietām. Ja interesē paskatīties kaut ko reālai dzīvei atbilstošāku, ņem http://olimpiade.lattelecom.lv/ un ej cauri visu gadu uzdevumiem. Varbūt daļa šķitīs sevišķi neinteresanti, bet tie visdrīzāk būs tie, kas visvairāk pietuvināti reālai dzīvei.

 

 

Link to comment
Share on other sites

0xDEAD BEEF

Labs points vispār! Kaut arī reizēm C kodēt ir maķenīt grūtāk un prasa lielākas zināšanas, tomēr par web bakstīšanu bieži maksā vairāk (Latvijā točna).

Protams - negribētu arī teikt, ka pārākās C++ zināšanas ir baigi sarežģīti, jo, piemēram - C++ manuālis laikam bija 300 lapu biezs, bet Microsoft Dynamics satur pāris tūkstošus tabulu, klašu, jobu, reportu un citu sūdu. To noteikti apgūt ir daudz grūtāk, kā iemācīties to C++ manuāli no galvas! ;)

Beefs

Link to comment
Share on other sites

Mezavecis

Pilnīgi piekrītu. Laiks ir nauda.

labs programmētājs ir nevis tas, kurš 3 nedēļas optimizēs for loop'u, bet gan tas, kurš, ar maksimālu efektivitāti, dos maksimālo darba atdevi, lai apmierinātu klientu.

 

Lai gan nekā nereāla te nav, ko autors pieminēja. Es arī vienā dienā izdomāju, ka kļūšu par programmistu un jau dažus gadus ar to nodarbojos paralēli vadības lietām. Kas kādreiz bija hobijs, tagad ir darbs.

 

Galvenais, lai ir interese. Lasīt manuāļus un citus sūdus labāk rekomendējiet skolniekiem bez pieredzes. No tā neviens īpaši gudrs nav palicis lasot bībelītes, jo teorija ātri vien izkūp gaisā.

 

Vajag ķerties pie lietas un kaut ko taisīt.

Link to comment
Share on other sites

Mezavecis

Ārča, man par koda tīrību neviens medāli nav iedevis :) Arī vienā būcenī ar 4 sienām riepu audzēt neliekas saistoši, šad tad der aizbraukt pie smukām meitenēm un padzert kapiju :) Tikai programmētājam tādi bonusi nespīd :)

Link to comment
Share on other sites

Kāda veida programmēšana ir vai varētu būt pieprasīta tuvākajā laikā?

Ja esi labākais savā sfērā (dzelži, programmas, webs), tu māki sevi reklamēt un ir labs menedžments, tad tu arī būsi pieprasīts visos laikos. Varbūt pēc 10 gadiem tieši dzelžu programmētāji būs pieprasīti, jo atlidos citplanētieši ar tehnoloģijām, kurām vajadzēs kontrolierus programmēt. Webs attīstīsies un attīstīsies, daudzas "desktop" aplikācijas jau šodien dodas "mākoņos" (google doci, tiešsaistes programmas mobilajos telefonos). Manuprāt, tāds vidusceļš būtu mācīties aplikāciju programmēšanu. Būšu nepopulārs un teikšu - mācies ANSI C un Objective-C 2.0, un kā iemesls- OSX tirgus augs un to lietotāji ir maksātspējīgi (aizmirsti LV tirgu, uzraksti programmu, uztaisi mājaslapu un sāc to pārdot ;) ), ar C var programmēt arī kontrolierus, c iedresēs (vai sabojās) tevi, objC iedos objektorientētu izpratni. Citi neiesaka ar C sākt, tajā pašā laikā visus jautājumus par šo valodu un figņām var atrast netā, blakus turot arī ričija cē bībeli. Un reālās dzīves trenniņš, reālās problēmas ir tas, kas dzen uz priekšu. Es iemācījos to mazumiņu tieši šadi- nebija programmas, kas darītu, ko vēlos un tāpēc pats tādu uzrakstīju. Par to pašu C un ObjC runājot (tur gan arī C++ var)- taisi aiTrubai programmiņas. Tirgus milzīgs, pārdod pa 1$ gabalā.

Labots - kroko
Link to comment
Share on other sites

Mezavecis

Ja orientējas aplikāciju veidošanā, tad mūsdienās Latvijā ir daži aktuālākie virzieni:

- spēles

- biznesa aplikācijas, kur jābūt ļoti labām zināšanām par datu bāzēm un biznesa loģiku. Ja rubī fišķu, darbs ir vienmēr un normāli atalgots.

 

Ārzemēs šie virzieni ir plašāki un lielākas iespējas izvērsties.

Labots - Mežavecis
Link to comment
Share on other sites

Webs attīstīsies un attīstīsies, daudzas "desktop" aplikācijas jau šodien dodas "mākoņos" (google doci, tiešsaistes programmas mobilajos telefonos).

Neesmu programmētājs, paldies dievam :mrgreen: , noceļu šo cilvēku priekšā cepuri :hi: Bet par Google Docs štelli tiešām esmu sajūsmā, un izskatās, ka šitā lieta attīstīsies un attīstīsies, labiem programmētājiem pat krīzes laikā darba pietiks un būs labi attalgoti vienmēr. Proffesija ar izaugsmi, bet ir arī savi mīnusi.

Labots - Bart
Link to comment
Share on other sites

Mezavecis

Ir starpība, vai tu tirgo kompilētu risinājumu vai kodu. Protams, ja tiek pārdots kods, tad tur jāievēro korekti principi, komentāri utt. Pie mums tas nav vēl tik populāri, tāpēc arī šāda lieta nav izplatīta.

Nu, Latvijā, kas joprojam atrodās 20. gs, uz koda tīrību skatās reti. Citur tas ir standarts. @Aleksejs veidotajā skype čatā viens programmētājs taisa

 

Protams, ir ļoti labi, ja automātiski veido skaidru un viegli lasāmu kodu.

Labots - Mežavecis
Link to comment
Share on other sites

Nu i tirliņu bars. Kas tur tāds ārkartējs divos mēnešos apgūt pitona pamatus un uzrakstīt divus dotos piemērus? Komentāri angļu valodā? Vai tas būtu kas nepreizs?

Kad man vajadzēja fiksi GUI R kodam uzstaisīt, bez nekādas programmēšanas pieredzes pāris dienās Tcl/Tk to izdarīju, tam taču tieši Tcl ir paredzēts: quick and dirty.

Labots - andza
Link to comment
Share on other sites

Domugrauds

mani pārsteidz tas ka te cilvēkam tiek stāstits virsū ka šis iemācijies pitonu 2 mēnešos, un kas par to ja pat viņš ir iemācijies? skauž ka tu nevarēji iemācīties tik ātri, da kaut lai pa nedēļu viņš iemācāš kas jums no tā?

Link to comment
Share on other sites

Balsoju par C# apgūšanu. Starp citu, paskaties uz tavsdarbs.lv atsauksmēm (šobrīd laikam down) - salīdzini lielās un mazās firmiņas. Lielajās ir tā, ka gan zemākā līmeņa vadītāji ir ļoti apmierināti ar darbu, gan arī programmētāji jūtas pieklājīgi atalgoti. Teiksim IT Alisē pirms krīzes bijis tā, ka pat darbinieku iekšējā rotācija notiek - apnicis rakstīt C#?Ej, moš Ruby pamēģini. Accenture, piemēram, ar Siebel, J# utml brīnumiem programmējas.

Mums krutākais jaunietis kantorī programmē iekš C#. Turklāt .NET koderiem ir iespēja kārtot sertifikātus, kas ir ĻOTI labs arguments.

 

Arča te runā par 400ls standarta programmētāja algu - nu nez, varbūt mazajās vebfirmiņās, kur cilvēki programmē "jūmlā".

Link to comment
Share on other sites

Delphin

lai vai kā - tirgus vienmēr būs biznesa aplikācijām(datubāzes, spēles, uzskaites programmas) - jeb lietām, kas pašas taisa naudu vai palīdz tās procesā. pārējais ir miris.

 

Tām aplikācijām ir vajadzīga platforma uz kuras strādāt (Os), bet to C#, .NET, etc. neizstrādāsi un Os'u izstrādei nevejag tikai 1, vai 2,3...10 cilvēkus ar labām zemā līmeņa programēšanas zināšanām. Šobrīd domāju ka tieši zemā līmeņa programēšana ir nosviesta novārtā.

Labots - Delphin
Link to comment
Share on other sites

Aleksejs

Zemā līmeņa programmēšana piedzīvo nelielu renesansi Arduino (šim gan tas zemais līmenis mazā izteikts, bet citiem, kurus šī embedded produkta popularitāte rauj sev līdzi, gan diezgan) un tam līdzīgo HW platformu popularizēšanās rezultātā.

Link to comment
Share on other sites

BRT2008
Ar tavam Einstein-like spējam tas aizņems pāris stundas.

Ielikos 40 minūtēs.

#Zaglis grib atvērt šifra atslēgu, kurai ir 4 ciparu kods, katrs no kuriem var būt cipars 0, 1, … 9.
#Noskaidrot cik laika zaglim vajadzēs sliktākajā gadījumā atslēgas atvēršanai,
#ja vienas kombinācijas pārbaudei ir nepieciešamas 5 sekundes un zaglis zina, ka
#1)kodā nav divu vienādu ciparu,
#2)koda ciparu summa ir 21,
#3)jāpārbauda visi iespejamie varianti
# Rezultātu izteikt stundās, minūtēs un sekundēs. 

# sāku 17.22
# sākotnēja doma, ilgi nemuļļāties un izņemt cauri visus iespējamos kodu variantus no
# 0000 līdz 9999 , katru ar if pārbaudot uz dotajiem kritērijiem.

keyint = -1
pkvs = 0

while keyint < 10000:

   keyint+=1
   if len(str(keyint)) == 1: keystr = '000'+ str(keyint)
   elif len(str(keyint)) == 2: keystr = '00'+ str(keyint)
   elif len(str(keyint)) == 3: keystr = '0'+ str(keyint)
   elif len(str(keyint)) == 4: keystr = str(keyint)

   if ( int(keystr[0]) + int(keystr[1]) + int(keystr[2]) + int(keystr[3]) ) == 21 :
       if ( int(keystr[0]) != int(keystr[1]) ) and ( int(keystr[0]) != int(keystr[2]) ) and (int(keystr[3]) != int(keystr[1]) ):
           if ( int(keystr[1]) != int(keystr[0]) ) and ( int(keystr[2]) != int(keystr[3]) ) and (int(keystr[3]) != int(keystr[1]) ):
               if ( int(keystr[2]) != int(keystr[0]) ) and ( int(keystr[1]) != int(keystr[3]) ) and (int(keystr[3]) != int(keystr[1]) ):
                   if ( int(keystr[3]) != int(keystr[0]) ) and ( int(keystr[1]) != int(keystr[2]) ) and (int(keystr[3]) != int(keystr[1]) ):
                       pkvs+=1

print( 'tika atrastas %s iespējamas kombinācijas.' % pkvs )
print ( 'kam tika patērēts %s minūtes un %s sekundes!' % ( round((pkvs*5) / 60 ), (pkvs*5) % 60 ) )


# zaglis nav tik gudrs, lai meklētu šādas kombinācijas, tapēc tupa iemauks ar lauzni un miers! ))

# pabeigts 18.02

 

tika atrastas 336 iespējamas kombinācijas.

kam tika patērēts 28 minūtes un 0 sekundes!

>>>

  • Patīk 1
Link to comment
Share on other sites

non7sens

Iestājies kādā pulciņā vai kādā open source pasākumā. Kad redzēsi vairāk kā kas notiek, kas patīk, tad jau zināsi arī kam prasīt padomu un uz ko tieši gribi tiekties.

Link to comment
Share on other sites

Aleksejs

ಠ_ಠ, es pat īsti par tirgu šobrīd nerunāju, vienkārši konstatēju faktu par zemā līmeņa valodu popularizēšanos. Bet lielu tirgu arī nevajag :) nevajag uzreiz tiekties pēc visas pasaules iekarošanas - lielākā daļa uzņēmumu itin labi pelna nebūdami ne paši lielākie, ne paši pazīstamākie... un galu galā - cilvēks tak neteica, kribu dibināt uzņ;ēmum8u, bet gan gribu programm;et. :)

  • Patīk 1
Link to comment
Share on other sites

0xDEAD BEEF

Nu embedded softam vel pāris gadus C++ būs ko darīt. Bet vēlā? Pēc 10 gadiem pat putekļusūcēja ieslēgšanas pogai apakšā būs 10nm 1ghz processors uz kura jau mierīgi varēs laist augstāka līmeņa programmas. Un tad vispār ar C++ zināšanām varēs sūkāt fafeli. Kuru tad mūsdienās tas piš? Uztaisam 100 jaunus objektus ar 300 valuekonvertoriem un 50 reizes pārkopējam objektus - garbage kolektors tā pat tiks galā. Nu - tā izskatās, ka programmēšana kvalitatīvi mainās un jaspēj tik skriet līdzi! Kaut vai tas pats WPF ar XAML - labdien!

Beefs

Link to comment
Share on other sites

Guest drunk_lizard

a man BRT2008 iepatikaas. izskataas lietaskoks.

Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share


×
×
  • Izveidot jaunu...