Премини към съдържанието
нпн

Решаване на задачи по програмиране с Java

Препоръчан отговор


Здравейте,

от скоро се занимавам с програмиране, но не знам дали съм на прав път. Намерих добри книги, с които да започна. Първата, която съм хванал е книгата на Наков за програмиране на Java. Разбирам примерите както и самата тематика, но изпитвам големи затруднения при решаването на някой от задачите и затова търся инфо за подобни такива в интернет. Бих желал по-опитните от мен или хора, които вече се занимават с програмиране да ме посъветват как да продължа от тък нататък.

 

 

Както и кой език бихте ми препоръчали. Колебая се все още между Java и C# и тъй като все още съм в началото, а и знам че C# е много сходен с Java, все още се чудя кой да избера ?

Редактирано от cappie (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Привет !

 

Подобни теми вече са развивани във форума. Потърсете в търсачката и ще излезнат резултатите.

Примерно една такава тема е тази, тази или тази и още други.

 

Върху какви задачи изпитвате затруднения по - конкретно ? Така можем да Ви дадем съвет къде и върху какво да наблегнете и какво допълнително да прочете ...

 

Поздрави !

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Изчетох и двете теми, но колебаниeто ми остава. С кое ще имам по-голямо развитие C# или Java ? Както и къде са по-добри заплатите ?

Редактирано от cappie (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Изчетох и двете теми, но колебаниято ми остава. С кое ще имам по-голямо развитие C# или Java ? Както и къде са по-добри заплатите ?

По принцип и с двете можете да се реализирате, а заплащането е почти на едно ниво (за съответните позиции) - може да има флуктуации, но горе-долу са равностойни. Въпроса в случая е Вас какво Ви влече - с Java, най-често говорим за Web приложения и информационни системи. Там имат доста голям дял. Рядко говорим за Desktop приложения или изпълними конзолни jar-ове. Освен това, с Java лесно се минава и към писането на Андроид приложения.

От друга страна, C# си се ползва и за Web приложения и за Desktop такива. Теоретично като идеология ползва елементи от Java, като в някои случаи са добавени и подобрения по тях. 

 

По лично мнение - ако искате да се занимавате с Web приложения и евентуално с Андроид след това, насочете се към Java. Ако искате Web приложения + десктоп приложения + евентуално по някое време да слезете до С++, хванете C#.

 

P.S. Горното изразява лично мнение и не се обвързва с правенето на реклама на каквото и да е било. Избора си е Ваш, и той в случая се изразява в избора на тези технологии, които са най-подходящи спрямо посоката, в която искате да се развивате.

 

Поздрави !

Редактирано от soundtracker (преглед на промените)
  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Какви по-точно биха били тези Web приложения ?


Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Какви по-точно биха били тези Web приложения ?

Ето пример - Java: тук и тук 

C# (+ASP.NET) - тук .

 

Дефиниция на Web приложение - цък

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Ето пример - Java: тук и тук

C# (+ASP.NET) - тук .

 

Дефиниция на Web приложение - цък

 

 

Май съм по привлечен от Java. Пък и не съм от феновете на Windows. Погледнах разни обяви и Java програмисти се търсят повече от C#. Така че, ще си остана с Java-та.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Май съм по привлечен от Java. Пък и не съм от феновете на Windows. Погледнах разни обяви и Java програмисти се търсят повече от C#. Така че, ще си остана с Java-та.

В случая, можете да изчакате и мнения на други колеги - те също могат да споделят опит и свои виждания.

А и винаги можете да обърнете от едното към другото. Поне по моя скромен опит (който, ако броим и дните в университета е около 6-7 години), в реалността и на работа няма да сте ограничен до Java-та само. Ще дойде и C, C++, Python, Ruby, JavaScript и всякакви знайни и незнайни неща, на които ще трябва да пишете. В случая е важно да схванете концепциите им - кое къде е по-добре да се ползва и защо - какви плюсове и минуси Ви дава. Рано или късно, вече ще е все едно на какъв език ще програмирате - въпроса тогава ще е бързо да се ориентирате кое как и къде да се ползва и защо да се ползва именно то :) .

 

Поздрави !

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

По-важно е първо да се насочиш какво точно искаш да програмираш и след това да мислиш кой език да захванеш.

А и това колко добър програмист ще бъдеш, не е пряко зависимо от познанията ти на конкретния език - езикът е просто инструмент. Ако искаш да си добър, трябва да разбираш от неща като алгоритми, структури от данни, дизайн патърни и софтуерна архитектура. ;)

Редактирано от gothicrock (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

По-важно е първо да се насочиш какво точно искаш да програмираш и след това да мислиш кой език да захванеш.

А и това колко добър програмист ще бъдеш, не е пряко зависимо от познанията ти на конкретния език - езикът е просто инструмент. Ако искаш да си добър, трябва да разбираш от неща като алгоритми, структури от данни, дизайн патърни и софтуерна архитектура. ;)

Съгласен ! Но аз лично останах с впечатлението, че запитващия все пак решава казуса между два конкретни "инструмента".

Дори и да не е така, може би поне в началото ще му е по-лесно да се докосне до който и да е от езиците и да понаучи малко синтаксис, преди да се захваща с дебелите ниши като алгоритми, СДП , патърни и софтуерни архитектури. Не съм сигурен, дали започвайки първо с тях, ще успее да усети и разбере абстракциите, които са засегнати, без да може да си ги имплементира (т.е. разпише) в чисто формален вид и да проследи работата им. 

 

С други думи, може би е добре първо да отвори кутията с инструменти и се запознае кое какво прави, преди да се започне да гледа плановете за стаи, гардероби, маси и столове и да си ги строи и сглобява ;)

 

Поздрави !

Редактирано от soundtracker (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Мисля да продължа с Java-та. Надявам се, че ще се намират добри хора да помагат ако имам затруднения. :)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Май съм по привлечен от Java. Пък и не съм от феновете на Windows. Погледнах разни обяви и Java програмисти се търсят повече от C#. Така че, ще си остана с Java-та.

Java е доста по-неприятен език (но това ще го усетиш в доста по-напреднал стадий на развитието си като програмист).

Връзката между C# и Windows не е толкова тясна, колкото беше преди десет години, въпреки че Java все още е по-преносима.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Дори и да не е така, може би поне в началото ще му е по-лесно да се докосне до който и да е от езиците и да понаучи малко синтаксис, преди да се захваща с дебелите ниши като алгоритми, СДП , патърни и софтуерни архитектури. Не съм сигурен, дали започвайки първо с тях, ще успее да усети и разбере абстракциите, които са засегнати, без да може да си ги имплементира (т.е. разпише) в чисто формален вид и да проследи работата им. 

 

В началото едва ли ще разбере всичко, но рано или късно трябва да осъзнае, че те са основата на нещата.

Редактирано от gothicrock (преглед на промените)
  • Харесва ми 2

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

В началото едва ли ще разбере всичко, но рано или късно трябва да осъзнае, че те са основата на нещата.

 

Аз имам малко опит със C++ от средното , така че съм наясно с някой по-елементарни неща.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

За да не отварям нова тема питам няколко въпроса в тази относно GitHub. Когато си направя репозитори и искам да кача нещо системата качва файловете, но качва и скритите такива. Например в папка folder си правя един файл index.html. След като го кача в гитхъб го виждам по два начина - index.html и index.html~ като втория го виждам като скрит файл в папката преди да го кача в гитхъб.

 

Другото, което ме интересува е дали след като кача определена директория трябва да я пазя на пц-то ми, за да мога пак да качвам от там файлове ?

Редактирано от cappie (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

... Както и кой език бихте ми препоръчали. Колебая се все още между Java и C# и тъй като все още съм в началото, а и знам че C# е много сходен с Java, все още се чудя кой да избера ?

Момче, не му мисли, ами започвай да учиш C#. От C# на Java се минава лесно (макар и болезнено), а ако се прехвърляш от Java на C#, най-вероятно никога няма да усвоиш всичките му красоти. И още нещо, Java-та в момента се намира десетилетия назад спрямо C#-а и като способности на езика, и като темп на развитие, и като достъпни фреймуърки, и като развойна среда! Единственото силно предимство на Java-а е, че е много по-преносима. Рънка буквално на всякакви екзотични железа...Успех!

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Момче, не му мисли, ами започвай да учиш C#. От C# на Java се минава лесно (макар и болезнено), а ако се прехвърляш от Java на C#, най-вероятно никога няма да усвоиш всичките му красоти. И още нещо, Java-та в момента се намира десетилетия назад спрямо C#-а и като способности на езика, и като темп на развитие, и като достъпни фреймуърки, и като развойна среда! Единственото силно предимство на Java-а е, че е много по-преносима. Рънка буквално на всякакви екзотични железа...Успех!

 

Аз вече реших да продължа с Java.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Аз вече реших да продължа с Java.

Все още не е късно да премислиш ;)

Наистина, единственото предимство на Java е преносимостта

Редактирано от maxim4o (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

 И още нещо, Java-та в момента се намира десетилетия назад спрямо C#-а и като способности на езика, и като темп на развитие, и като достъпни фреймуърки, и като развойна среда! Единственото силно предимство на Java-а е, че е много по-преносима. Рънка буквално на всякакви екзотични железа...Успех!

За първото Ви мнение не мога да се съглася, за съжаление. Може и да е по-назад, но чак с "десетилетия"... Като способности на езика, не смятам, че нещо липсва, при условие, че говорим за OOP език. С 8-цата дори ще вкарат "дългоочакваните" lambda notations и интерфейси за функционално програмиране. Факт е, че след като Оракъл ги купи, нещата малко се "зацапаха", но не мисля, че C# е на светлинни години напред. 

 

Съгласен съм с това, че може да бъде подкарана и на тостер, кафеварка или прахосмукачка, въпреки, че и там резултатите са спорни :) ...

 

Поздрави !

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

По пътя на логиката не мисля, че преносимостта е малко предимство, а и от това което изчетох програмист не е този, който може да пише на един език (платформа), а този които се интересува от софтуерните иновации и може да работи с различни езици, така че продължавам с Java-та и ако някой ден дай боже се реализирам най-вероятно ще ми се наложи да пиша и на C#, C++, Ruby и какво ли още не ... :)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

За първото Ви мнение не мога да се съглася, за съжаление. Може и да е по-назад, но чак с "десетилетия"... Като способности на езика, не смятам, че нещо липсва, при условие, че говорим за OOP език. С 8-цата дори ще вкарат "дългоочакваните" lambda notations и интерфейси за функционално програмиране. Факт е, че след като Оракъл ги купи, нещата малко се "зацапаха", но не мисля, че C# е на светлинни години напред. ...

Как да ти кажа... След 10 години в .NET света, ми се наложи да сменя платформата. От едно известно време пиша на Java. Чувството е като да слезеш от лъскавия автомобил и да се качиш на каручка. Така де, пак не ходиш пеша, но не е като да натискаш газта и да летиш напред. Та и с Java-та така, виждаш как даден проблем може да бъде решено в един ред, вчетим и лесен за поддръжка вариант, но уви! В Java-та няма:Compile time genericsDelegatesEventsExtension MethodsLINQLambda ExpressionsPropertiesThe "dynamic" TypeAnonymous TypesAnonymous DelegatesPartial ClassesPartial MethodsPreprocessor Directives...И това е само що се отнася до базови езикови възможности. Ако pyk, отворим дума за фреймуърки, списъкът ще е доста по-дълъг. Какво струва само вградената XML сериализация на .NET-а? Та там нещата вървят от самосебе си. А в Java трябва да си професор по JAXB. Да пишеш безкрайни байндинг и епизод файлове и да се молиш, това което е документирано, да е правилно имплементирано, защото maven jaxb2 плъгина така и не е излезал от бета стeйджа. Следва развойната среда, ами няма нито едно Java базирано IDE, което да стъпи и на малкият пръст на VS. За рефакторинг и код дженерейшън възможностите и алтернативите пък да не говорим - просто няма кой да се мери с t4 темплейтите! Сълюшън билдинг? Един maven има, дето едвам върви. Няма какво да си говорим, навремето Java-та беше символ на прогреса, иновацията и комюнити уърка! Сега, първенството се държи от .NET-а. Причината е много проста, Java-та не могат да си я поделят големите играчи, като IBM, Oracle etc. Всеки е със своите интереси и имплементации, поради което всяка иновация е спъвана от едни тромави процеси по допускане, осиновяване и сертификация. Резултатът е на лице. Всички добре знаем от колко време не е излизала нова версия... 

...Съгласен съм с това, че може да бъде подкарана и на тостер, кафеварка или прахосмукачка, въпреки, че и там резултатите са спорни :) ......

Излиза казваш, че и това не е предимство на Java-та, така ли? Закачам се :) Продуктът, в чиято разработка участвам, трябва да може да работи на 3 различни класа операционни системи, върху две различни хардуеърни архитектури. Това на .NET не става...За да не остана неразбран. Аз не казвам, че Java-та е символ на някакво зло. Напротив тя си има своето приложение и е нелоша платформа за разработка, но в текущият си вид, сравнена с възможностите, които дава C#-а, милинката е просто десетилетия назад...Поздрави!
  • Харесва ми 2

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

...

Без да защитавам Java-та (все пак и аз съм сърбал попарите ѝ :) ), но част от цитираните по първия Ви списък елементи се покриват - съществува подобие на Event-ите, както и API, което може да се разширява. Може би не е толкова "явно", открито и лесно за ползване, както в C#, но го има. Анонимните типове също присъстват, но отново не са толкова явни - все пак може да се направи следното:

Serializable s = new Serializable(){};

(P.S. Просто за чисто доизясняване на примера, Serializable е интерфейс, а по дефиниция, от интерфейси не можем да правим обекти. След изпълнението на този ред, s е референция към обект, изграден на базата на анонимен клас, имплементиращ съответния интерфейс Serializable.)

 

По останалите неща съм съгласен - там в някои случаи има разработки, които се ползват успешно (не native, разбира се). За други няма, а трети се очакват да дойдат ... :)

 

За IDE-та, също се намират няколко добри (и платени) - RSA, IntelliJ IDEA. От тях, може би RSA-то има смисъл да сравняваме като възможности с продукт от класата на VS. 

Но не съм убеден, че Eclipse или NetBeans са по-зле от безплатните версии за C# IDE-та ... Всъщност ще се радвам, ако успеем да направим сравнение :).

 

Както и в предния си пост отбелязах, след като Оракъл купиха Сън, нещата се понамазаха - вярно е, че IBM и Oracle си мерят ... стандартите, и това, както и Вие споменахте, доведе до адско забавяне на версия 7 (а и release-а поне в началото си беше пълен със security проблеми, която успя да се стабилизира). Седмицата излезе преди около 2 години, като поднесе солиден ъпдейт по Gererics и Annotation (включително и JPA) API-тата и др. В момента има dev версия на 8-цата, която може да се тества, като там (най-накрая) закачиха и идеи от функционалното програмиране (P.S. Което ме навежда над мисълта, че Scala не е успяла да оправдае очакванията им :D ). За code generation и рефакториране, отново се съгласявам - дефинирането на правилата за тях биха довели и спокоен човек до полуда. Има предефинирани темплейти, които може би след 20-то използване човек може и да разбере кои неща да маркира като опции и кои - не :D. Но това вече зависи повече от IDE-тата, отколкото до възможности на езика.

 

Не на последно място, C#, въпреки, че уж ползва част от нещата, заложени в Java (Поне засега не се наемам да заставам зад това - достатъчно версии са изтекли оттогава, и поради това може би е по - добре дори да си ги водим за абсолютно независими), си е език от по- ново поколение. При разработката му са видени плюсовете и недостатъците, които останалите езици имат и на тази база, той излиза и с по - малко проблеми.

 

P.S. Винаги, когато се налага да работа по неща, свързани с JAXB-то (WebServices най-често) си вземам 1 пакет аналгин и у нас се запасявам с твърд алкохол. Аналгина го прилагам през 2-3 часа на работа, а алкохола - след работа. Иначе нещата ще свършат в 4-ти километър ... Много и разнообразни проблеми могат да разрешат с него, ама докато го се направи да тръгне, Microsoft вече са ще са излезли с нова версия на Windows ...

 

P.P.S. Единственото нещо, което е по-бавно от зареждане на Java приложение е телефон, на който firmware-а му се изпълнява на JVM. 

 

Поздрави и се извинявам за offtopic-а, който причинявам с това си мнение :) ! Много се радвам, че успяхме да заформим тази дискусия и се надявам да е полезна и за запитващия :).

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Без да бъда досаден, но:

...съществува подобие на Event-ите, както и API, което може да се разширява. Може би не е толкова "явно", открито и лесно за ползване, както в C#, но го има....

Интерфейсите не са Делегации и най-вече не са Ивенти. Разликата е голяма. Най-вече в простотата на използване, чистотата на изразяване, лесната поддръжка и хубавата имплементация.

...Анонимните типове също присъстват, но отново не са толкова явни - все пак може да се направи следното:

Serializable s = new Serializable(){};
(P.S. Просто за чисто доизясняване на примера, Serializable е интерфейс, а по дефиниция, от интерфейси не можем да правим обекти. След изпълнението на този ред, s е референция към обект, изграден на базата на анонимен клас, имплементиращ съответния интерфейс Serializable.)...

Явно не си разбрал цялата дълбочина на възможностите, които дават анонимните типове в С#. За пример, LINQ експрешън може да върне клас, чийто тип никога не е бил дефиниран като клас или интерфейс...

...P.S. Винаги, когато се налага да работа по неща, свързани с JAXB-то (WebServices най-често) си вземам 1 пакет аналгин и у нас се запасявам с твърд алкохол. Аналгина го прилагам през 2-3 часа на работа, а алкохола - след работа. Иначе нещата ще свършат в 4-ти километър ... Много и разнообразни проблеми могат да разрешат с него, ама докато го се направи да тръгне, Microsoft вече са ще са излезли с нова версия на Windows ...

Ето за тези мънички неща си говорим!

Не на последно място, C#, въпреки, че уж ползва част от нещата, заложени в Java (Поне засега не се наемам да заставам зад това - достатъчно версии са изтекли оттогава, и поради това може би е по - добре дори да си ги водим за абсолютно независими), си е език от по- ново поколение. При разработката му са видени плюсовете и недостатъците, които останалите езици имат и на тази база, той излиза и с по - малко проблеми....

И не, че C# идва с напълно безпроблемни решения на всички проблеми, но все пак както ти каза по-новичък е и по-измислен...
  • Харесва ми 2

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Интерфейсите не са Делегации и най-вече не са Ивенти. Разликата е голяма. Най-вече в простотата на използване, чистотата на изразяване, лесната поддръжка и хубавата имплементация.

...

Явно не си разбрал цялата дълбочина на възможностите, които дават анонимните типове в С#. За пример, LINQ експрешън може да върне клас, чийто тип никога не е бил дефиниран като клас или интерфейс...

Определено съм съгласен с Вас, че предоставените възможности са интерфейси, които се опитват да работят (може би в случая е по - подходящ термина "симулират") възможностите на Делегациите и Ивентите. Не се държат като тях и определено ползването има не е пример нито за лесна поддръжка, нито за чистота - да не говорим пък за хубава имплементация :).

Относно анонимните типове, в случая грешно (по инерция) давам знак за равенство между двете, отново изхождайки от това, че нещата са реализирани отново като workaround-и, които отново се опитват да решат (симулират) подобен начин на работа. 

Всъщност, с риск съвсем да Ви досаждам, но имплементацията на т.нар. анонимни класове, по същност е доста близка до реализацията на inner класовете. С тази разлика, че "липсват" каквито и да е конструктори и например не може през рефериран Class обект на анонимен клас да се създаде нова инстанция. За капак на всички, такива "класове" се реферират с числа (MyClass$1, SomeClass$4) :D . 

За съжаление, опита със C# е по-малък отколкото с Java, поради това и се получават подобни разминавания изложените мои аргументи от по-горния пост.

 

Поздрави !

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.