Początki informatyki 2

gorzkawa
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 22 lip 2012, o 13:03
Płeć: Kobieta
Lokalizacja: Toruń

Początki informatyki 2

Post autor: gorzkawa »

Witam.
Studiuje bioinformatykę. Jednak jest w niej więcej bio niż inf, a inf jest na marnym poziomie. Chciałabym pogłębiać swoją wiedzę informatyczną (na biologiczną nie narzekam) czego nie umożliwia mi kierunek. Marzy mi się programowanie. Nie miałam analizy matematycznej, a tylko trochę (trzy zajęcia) logiki na matematyce. Powiedzcie mi proszę od czego powinnam zacząć. Dać jakieś wytyczne. Łapie Pythona (jedyny język jaki na razie jest mi znany), ale potrafię pisać tylko podstawowe algorytmy. Czy wpierw doskonalić się w matematyce, czy kupić jakaś książkę o algorytmach i próbować programować? Co wg was powinnam umieć już? Wydaje mi się, że nawet podstaw informatyki nie znam, więc uczę się ich sama.
Awatar użytkownika
rtuszyns
Użytkownik
Użytkownik
Posty: 2042
Rejestracja: 29 gru 2006, o 23:24
Płeć: Mężczyzna
Lokalizacja: Zamość
Podziękował: 1 raz
Pomógł: 229 razy

[wiedza informatyczna]

Post autor: rtuszyns »

Proponuję poszukać podstawowych (najprostszych) książek o języku programowania Java. Obecnie jest on szeroko używany do programowania obiektowego i również do programowania aplikacji internetowych. Jest on zbliżony strukturą do C (C++) więc jeżeli "liznęłaś" podstawy C to sobie dasz radę. Szukaj książek o algorytmizacji i algorytmach - jest ich wiele...
gorzkawa
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 22 lip 2012, o 13:03
Płeć: Kobieta
Lokalizacja: Toruń

[wiedza informatyczna]

Post autor: gorzkawa »

Nie C, tylko Pythona. W takim razie nadal sądzisz, ze powinnam zaczać od javy? Ale chciałabym nauczyć się pisać skomplikowane algorytmy. Lepiej uczyć się tego w Javie czy w Pythonie i jakie książki radzisz do algorytmów?
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

[wiedza informatyczna]

Post autor: dexter90 »

Do algorytmów jakich? Normlanie polecam Cormena. Chyba najlepsza.

-- 22 lip 2012, o 15:34 --

rtuszyns, co do programowania obiektowego standard stanowi C++, do aplikacji internetowych doskonale się nadaje do tego C#. Do Javy można podbić wtedy jak się pozna C#. Zresztą ile można pisać, że co język to przeznaczenie. Proste, że do zaimplementowania listy np. dwukierunkowej użyjemy C++ niż C# ze względu na fakt, że w używanie wskaźników w dotNet nie jest dobrym rozwiązaniem. Mamy tam inny zestaw kolekcji.

Autorce polecam na samym początku C++ ( strukturalnie, potem obiektowo ).
Awatar użytkownika
_karolina_
Użytkownik
Użytkownik
Posty: 21
Rejestracja: 25 lut 2012, o 12:17
Płeć: Kobieta
Lokalizacja: Warszawa
Pomógł: 1 raz

Początki informatyki 2

Post autor: _karolina_ »

Poza tym dobrze sobie znaleźć chłopa informatyka. Pogłębienie wiedzy gwarantowane
norwimaj
Użytkownik
Użytkownik
Posty: 5101
Rejestracja: 11 mar 2011, o 16:31
Płeć: Mężczyzna
Lokalizacja: 52°16'37''N 20°52'45''E
Podziękował: 4 razy
Pomógł: 1001 razy

[wiedza informatyczna]

Post autor: norwimaj »

dexter90 pisze: co do programowania obiektowego standard stanowi C++,
W jakim sensie C++ stanowi standard co do programowania obiektowego? Dlaczego nie jakiś język czysto obiektowy, jak Smalltalk?
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

Początki informatyki 2

Post autor: dexter90 »

Chociażby jest wolniejszy.
norwimaj
Użytkownik
Użytkownik
Posty: 5101
Rejestracja: 11 mar 2011, o 16:31
Płeć: Mężczyzna
Lokalizacja: 52°16'37''N 20°52'45''E
Podziękował: 4 razy
Pomógł: 1001 razy

Początki informatyki 2

Post autor: norwimaj »

To znaczy że im szybszy jest język, tym bardziej stanowi on standard obiektowości? Czy też są jakieś inne kryteria?
Awatar użytkownika
_karolina_
Użytkownik
Użytkownik
Posty: 21
Rejestracja: 25 lut 2012, o 12:17
Płeć: Kobieta
Lokalizacja: Warszawa
Pomógł: 1 raz

[wiedza informatyczna]

Post autor: _karolina_ »

norwimaj pisze:W jakim sensie C++ stanowi standard co do programowania obiektowego? Dlaczego nie jakiś język czysto obiektowy, jak Smalltalk?
dexter90 pisze:Chociażby jest wolniejszy.
+ niektórzy programiści nawet o nim nie słyszeli (nie autopsja). standardy w wielu rzeczach to najczęściej coś znanego, uznanego, przetestowanego.
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

Początki informatyki 2

Post autor: dexter90 »

Nie, nie ma takich kryteriów. Ale "lepszy produkt" bardziej "leżący użytkownikowi" staje się standardem "statystycznie" to oznacza moim, że dziś standardem jest 4GB ram bo prawie każdy laptop ma 4 GB ram. C++ jest szybki, stosunkowo prosty, ogromne wsparcie techniczne i wiele innych, co podoba się użytkownikom. W Smalltack'u obiektowość się ukształtowała, ale sukces odniosła właśnie w C++/Java.
_fx
Użytkownik
Użytkownik
Posty: 8
Rejestracja: 7 sie 2012, o 18:57
Płeć: Mężczyzna
Lokalizacja: podlasie

Początki informatyki 2

Post autor: _fx »

rtuszyns, co do programowania obiektowego standard stanowi C++, do aplikacji internetowych doskonale się nadaje do tego C#. Do Javy można podbić wtedy jak się pozna C#. Zresztą ile można pisać, że co język to przeznaczenie. Proste, że do zaimplementowania listy np. dwukierunkowej użyjemy C++ niż C# ze względu na fakt, że w używanie wskaźników w dotNet nie jest dobrym rozwiązaniem. Mamy tam inny zestaw kolekcji.

1.C++ w zadnym razie nie jest standardem programowania obiektowego, w ktorym nawet latwiej naginac zasady "OOP" .
2. Do javy mozna podbijac jak sie nie zna C#, to bzdura.
3. Uzywanie wskaznikow w zadnym wypadku nie jest zlym rozwiazaniem, jezeli jest to zasadne to nie ma zadnego problemu (tak poza tym chcac skorzystac z jakiejs funkcji np. WinApi takze korzystamy ze swego rodzaju wskaznikow (IntPtr), a jest to dosc powszechne rozwiazanie).
4. W C# mamy gotowa liste dwukierunkowa - LinkedList
Chociażby jest wolniejszy. ( C++ )
Przy dzisiejszych mozliwosciach sprzetowych nie jest to jakas znaczaca roznica. Dodatkowo poprawny i zooptymalizowany kod napisany w "wolnym" C# / Javie moze byc nawet szybszy niz w "najszybszym" assembly, a co bardziej w C++. Poza tym nie mam pojęcia jak o obiektowosci języka może swiadczyc jego szybkosc : P W takim razie mozna powiedziec ze dobry kod w assembly jest zorientowany obiektowo:)

Co do głównego pytania polecam na samym początku C#. Mozna w nim pisac aplikacje "desktopowe" na Windowsa, aplikacje internetowe oraz SilverLight, aplikacje na systemy Windows Phone, a nawet jakies mniejsze, całkiem fajne gry (takze na xboxa). Jest to język moim zdaniem najprostszy dla poczatkujących. Jezeli zalezy Ci na aplikacja wieloplatformowych radzę blizej przyjrzec sie Javie badz C++.
Mimo wszystko jednoczesnie polecam C++, nauczysz sie tej "magicznej" wiedzy o wskaznikach, zarządzaniu pamięcia co z pewnością przyda Ci się w pisaniu w C# czy javie.

IDE wraz z kompilatorem dla C# to Microsoft Visual C# 2010 (wersja Express jest darmowa), a dla C++ to Microsoft Visual C++ 2010 ( także darmowa ). Przy C++ gdy piszesz na Windowsa odradzam eksperymentów typu Dev C++ (swoja droga dluzszy czas nie wspierany i nie aktualizowany) badz Codeblocks. MS Visual bardzo Ci pomoże mając wiele świetnych opcji takich jak np. Intellisense (automatyczne uzupełnianie kodu).
Powodzenia:)
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

Początki informatyki 2

Post autor: dexter90 »

Przy dzisiejszych mozliwosciach sprzetowych nie jest to jakas znaczaca roznica
Wciąż jest.
Uzywanie wskaznikow w zadnym wypadku nie jest zlym rozwiazaniem
Od tego mamy kolekcje,
C++ w zadnym razie nie jest standardem programowania obiektowego
Na początek lepszym standardem niż Java, chodź Java dla początkującego powinna być lepsza moim zdaniem jednak lepiej zacząć w C++.
Poza tym nie mam pojęcia jak o obiektowosci języka może swiadczyc jego szybkosc : P
Nikt tego nie napisał
Dodatkowo poprawny i zooptymalizowany kod napisany w "wolnym" C# / Javie moze byc nawet szybszy niz w "najszybszym" assembly, a co bardziej w C++
Nie osiągniesz szybko takiego stanu rzeczy,
takim razie mozna powiedziec ze dobry kod w assembly jest zorientowany obiektowo:)
Skaczesz po poziomach. Zastanów się do czego chcesz używąć konretnego języka. Do aplikacji sieciowych, a może do programowania mikrokontrolerów?? A może programowanie rozproszone??
W MS V C++ 2010
Intellisense nie działa ( chyba ) bo wiem, że w moim z 2008 jest ok. Nie rozprawiałem się nad tym za bardzo w 2010.
Uzywanie wskaznikow w zadnym wypadku nie jest zlym rozwiazaniem, jezeli jest to zasadne to nie ma zadnego problemu
Twoje zdanie, aczkolwiek świadczy o złych nawykach programowania. Skoro ja teraz napiszę, że funkcja, która ma więcej niż 20 linijek jest złą funkcją, też zaprzeczysz??

No i btw mądry programista nie będzie używał wskaźników w C#.... Jest to po prostu niebezpieczne? Dlaczego? Poczytaj.
_fx
Użytkownik
Użytkownik
Posty: 8
Rejestracja: 7 sie 2012, o 18:57
Płeć: Mężczyzna
Lokalizacja: podlasie

Początki informatyki 2

Post autor: _fx »

Przy dzisiejszych mozliwosciach sprzetowych nie jest to jakas znaczaca roznica
-Wciąż jest.
Jezeli chcemy przyspieszyc jakis algorytm albo wazny fragmnet kodu to zawsze mozemy sie posluzyc blokiem unsafe w C# (wskazniki etc.) badz napisac dll w czystym C i "zainvokowac" ja do c#. Zreszta powatrzam pisanie w C++ nie oznacza kodu szybszego w zadnym wypadku...

Uzywanie wskaznikow w zadnym wypadku nie jest zlym rozwiazaniem
Od tego mamy kolekcje,
??? :) Wskazniki to nie kolekcje, ta dyskusja nie ma sensu.. W takim razie jak programisci korzystaja z WinApi ? Projektanci i programisci Microsofta musza sie mylic, w koncu np. w takim XNA (frameworku do gier do C#) jest masa wskaznikow w zwiazku z uzyciem DirectX'a..



Na początek lepszym standardem niż Java, chodź Java dla początkującego powinna być lepsza moim zdaniem jednak lepiej zacząć w C++.
C++ nie jest standardem jezyka obiektowego powtarzam! Java czy C# jest o wiele bardziej "obiektowa".

Poza tym nie mam pojęcia jak o obiektowosci języka może swiadczyc jego szybkosc : P
Nikt tego nie napisał
Owszem ty to napisales w odpowiedzi na pytanie "W jakim sensie C++ stanowi standard co do programowania obiektowego?" :P

Dodatkowo poprawny i zooptymalizowany kod napisany w "wolnym" C# / Javie moze byc nawet szybszy niz w "najszybszym" assembly, a co bardziej w C++
Nie osiągniesz szybko takiego stanu rzeczy,
owszem ale jezeil bedziesz na takim poziomie to szybkosc w ogole nie gra roli.. Mozesz pisac naprawde wolne programy w C# jezeli nie masz pojecia np. o zlozonosci obliczeniowej wyszukiwania w poszcegolnych kolekcjach itp..



W MS V C++ 2010

Intellisense nie działa ( chyba ) bo wiem, że w moim z 2008 jest ok. Nie rozprawiałem się nad tym za bardzo w 2010.
Działa tylko ze nie w MFC - ale to i tak imo przezytek wyparty przez C#.
Uzywanie wskaznikow w zadnym wypadku nie jest zlym rozwiazaniem, jezeli jest to zasadne to nie ma zadnego problemu
Twoje zdanie, aczkolwiek świadczy o złych nawykach programowania. Skoro ja teraz napiszę, że funkcja, która ma więcej niż 20 linijek jest złą funkcją, też zaprzeczysz??

No i btw mądry programista nie będzie używał wskaźników w C#.... Jest to po prostu niebezpieczne? Dlaczego? Poczytaj.
W takim razie madry programista nie bedzie uzywal wskaznikow w C++ ;). Chyba słówko kluczowe "unsafe" cie tak przerazilo:) W takim razie trzeba poinformowac setki programistow aby przestali importowac i korzystac z funkcji opengla czy WinApi do C#:)

Znajomy zawodowy programista mial obrobic obraz 1024x860 per pixel przy uzyciu C#. Bez wskaznikow zajmowalo to 2s, po wrzuceniu bloku kodu do "unsafe" i skorzystaniu ze wskaznikow cala operacja trwala mniej niz 0,05s. Ale wskazniki w C# sa be:)
Proponuje doczytac.:)

Starasz sie na siłe umniejszyc role C# czy Javy i faworyzować C++. W javie czy C# tez mozna zrobic np. fajna gre. Przyklad java - minecraft, C# - (xna racing:)
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

Początki informatyki 2

Post autor: dexter90 »

Napisałem odrębne zdanie, że C++ jest szyby od Smalltalk. Widzę, że nawyki dobrego programowania ( idź do ilości "20 linijek" ) także Cię przerosły Ja nie komentuje wydarzeń zawodowych Twojego znajomego bo może to być obcy dla Ciebie użytkownik forum programistycznego xD. Takie wywody dla mnie nie mają sensu.

Nic nie faworyzuje, z moich zdań wynika, że co język to przeznaczenie, a Ty cały czas mówisz tu o grach, wybacz ja już nie gram.

"Owszem, ale jeśli będziesz na takim poziomie" - przeczysz sobie, że szybkość języka nie gra roli, gra bo doświadczeni programiście nie są na "takim" poziomie.

Generalnie nie znasz paradygmatów programowania. Phi.

EDIT:

Jeszcze raz powtarzam, pisz swoje przemyślenia, a nie to Twój "kolega" zrobił bo to 2 różne sprawy.
_fx
Użytkownik
Użytkownik
Posty: 8
Rejestracja: 7 sie 2012, o 18:57
Płeć: Mężczyzna
Lokalizacja: podlasie

Początki informatyki 2

Post autor: _fx »

co ma wspolnego funkcja 20 linijkowa ze wskaznikami:P? nie masz pojecia czym sa wskazniki, a moje przemyslanie sa takie ze w C# sa potrzebne, bez tego nie moglbym skorzystac z WinApi, dzieki ktoremu zakladalem hooki na myszke w C#..
Jakie sa wedlug ciebie paradygmaty programowania? "Nie korzystanie ze wskaznikow bo sa kolekcje" (???) Błazenada.
ODPOWIEDZ