Początki informatyki 2
Początki informatyki 2
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.
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.
- rtuszyns
- 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]
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...
[wiedza informatyczna]
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?
[wiedza informatyczna]
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 ).
-- 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 ).
- _karolina_
- Użytkownik
- Posty: 21
- Rejestracja: 25 lut 2012, o 12:17
- Płeć: Kobieta
- Lokalizacja: Warszawa
- Pomógł: 1 raz
Początki informatyki 2
Poza tym dobrze sobie znaleźć chłopa informatyka. Pogłębienie wiedzy gwarantowane
-
- 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]
W jakim sensie C++ stanowi standard co do programowania obiektowego? Dlaczego nie jakiś język czysto obiektowy, jak Smalltalk?dexter90 pisze: co do programowania obiektowego standard stanowi C++,
-
- 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
To znaczy że im szybszy jest język, tym bardziej stanowi on standard obiektowości? Czy też są jakieś inne kryteria?
- _karolina_
- Użytkownik
- Posty: 21
- Rejestracja: 25 lut 2012, o 12:17
- Płeć: Kobieta
- Lokalizacja: Warszawa
- Pomógł: 1 raz
[wiedza informatyczna]
norwimaj pisze:W jakim sensie C++ stanowi standard co do programowania obiektowego? Dlaczego nie jakiś język czysto obiektowy, jak Smalltalk?
+ niektórzy programiści nawet o nim nie słyszeli (nie autopsja). standardy w wielu rzeczach to najczęściej coś znanego, uznanego, przetestowanego.dexter90 pisze:Chociażby jest wolniejszy.
Początki informatyki 2
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.
Początki informatyki 2
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
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:)Chociażby jest wolniejszy. ( C++ )
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:)
Początki informatyki 2
Wciąż jest.Przy dzisiejszych mozliwosciach sprzetowych nie jest to jakas znaczaca roznica
Od tego mamy kolekcje,Uzywanie wskaznikow w zadnym wypadku nie jest zlym rozwiazaniem
Na początek lepszym standardem niż Java, chodź Java dla początkującego powinna być lepsza moim zdaniem jednak lepiej zacząć w C++.C++ w zadnym razie nie jest standardem programowania obiektowego
Nikt tego nie napisałPoza tym nie mam pojęcia jak o obiektowosci języka może swiadczyc jego szybkosc : P
Nie osiągniesz szybko takiego stanu rzeczy,Dodatkowo poprawny i zooptymalizowany kod napisany w "wolnym" C# / Javie moze byc nawet szybszy niz w "najszybszym" assembly, a co bardziej w C++
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??takim razie mozna powiedziec ze dobry kod w assembly jest zorientowany obiektowo:)
Intellisense nie działa ( chyba ) bo wiem, że w moim z 2008 jest ok. Nie rozprawiałem się nad tym za bardzo w 2010.W MS V C++ 2010
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??Uzywanie wskaznikow w zadnym wypadku nie jest zlym rozwiazaniem, jezeli jest to zasadne to nie ma zadnego problemu
No i btw mądry programista nie będzie używał wskaźników w C#.... Jest to po prostu niebezpieczne? Dlaczego? Poczytaj.
Początki informatyki 2
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...Przy dzisiejszych mozliwosciach sprzetowych nie jest to jakas znaczaca roznica
-Wciąż jest.
??? 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..Uzywanie wskaznikow w zadnym wypadku nie jest zlym rozwiazaniem
Od tego mamy kolekcje,
C++ nie jest standardem jezyka obiektowego powtarzam! Java czy C# jest o wiele bardziej "obiektowa".Na początek lepszym standardem niż Java, chodź Java dla początkującego powinna być lepsza moim zdaniem jednak lepiej zacząć w C++.
Owszem ty to napisales w odpowiedzi na pytanie "W jakim sensie C++ stanowi standard co do programowania obiektowego?"Poza tym nie mam pojęcia jak o obiektowosci języka może swiadczyc jego szybkosc : P
Nikt tego nie napisał
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..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,
Działa tylko ze nie w MFC - ale to i tak imo przezytek wyparty przez C#.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
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#:)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.
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:)
Początki informatyki 2
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.
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.
Początki informatyki 2
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.
Jakie sa wedlug ciebie paradygmaty programowania? "Nie korzystanie ze wskaznikow bo sa kolekcje" (???) Błazenada.