Несколько вопросов по языку
-
Michael_il
- Сообщения: 28
- Зарегистрирован: 15 окт 2014, 06:05
Несколько вопросов по языку
Привет всем!
Я программист С/C++. Осваиваю Андроид. Естественно, провожу аналогию с тем, что знаю.
Есть нескоколько вопросов по языку.
1. Есть ли в Андроиде возможность объявить глобальную структуру для хранения каких-либо данных (по аналогии с С++)?
2. Директива #define ?
3. Определение типа данных typedef ?
4. Возможность сохранять данные в файле и извлекать их (типа ini-file)?
Пожалуй, для начала, все.
Я, конечно, еще сам погуглю, но очень уж много инфы надо перелопатить.
Заранее благодарю за помощь.
Я программист С/C++. Осваиваю Андроид. Естественно, провожу аналогию с тем, что знаю.
Есть нескоколько вопросов по языку.
1. Есть ли в Андроиде возможность объявить глобальную структуру для хранения каких-либо данных (по аналогии с С++)?
2. Директива #define ?
3. Определение типа данных typedef ?
4. Возможность сохранять данные в файле и извлекать их (типа ini-file)?
Пожалуй, для начала, все.
Я, конечно, еще сам погуглю, но очень уж много инфы надо перелопатить.
Заранее благодарю за помощь.
Re: Несколько вопросов по языку
проще вам взять учебник по java и его полистать. Программист в таких вещах разберется быстро.
Например, в учебнике хорстмана в каждой главе проводятся аналогии с С++
Например, в учебнике хорстмана в каждой главе проводятся аналогии с С++
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Несколько вопросов по языку
1. На счет глобального погугли квалификаторы доступа в джава (в частности public), а вообще в андроиде используется система с Id разных элементов. Есть класс R с ИД. Почитать - http://developer.alexanderklimov.ru/and ... s.php#code (можно читнуть всю статью, но ссылка ведет конкретно про R класс)Michael_il писал(а):Привет всем!
1. Есть ли в Андроиде возможность объявить глобальную структуру для хранения каких-либо данных (по аналогии с С++)?
2. Директива #define ?
3. Определение типа данных typedef ?
4. Возможность сохранять данные в файле и извлекать их (типа ini-file)?
2. Никогда не использовал препроцесор на плюсах, посоветовать ничего не смогу. (Изучал только основы с++)
3. С тайпдефом тоже почти не встречался. Создание своих классов полностью удовлетворяет все потребности в "экзотических типах". Часто создают класс чисто как контейнер.
4. Работа с файлами в java или в андроид. Если же конкретно для настроек: погугли: sharedPreferences (но для начинающего будет запутанно), Еще тот же xml в андроиде хранит много чего интересного: строки, цвета(colors) и т.д. БД думаю итак понятно.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Несколько вопросов по языку
Нескромный вопрос: а почему не ios?
-
Michael_il
- Сообщения: 28
- Зарегистрирован: 15 окт 2014, 06:05
Re: Несколько вопросов по языку
Благодарю за советы. Погуглил, поговорил с народом, вроде прояснлось немного.
Учебник полистаю, конечно, но иногда вовремя поданный совет экономит много времени и сил.
А насчет ios - пока есть несколько проектов для Андроида. ios никуда не денется, всему свое время.
Учебник полистаю, конечно, но иногда вовремя поданный совет экономит много времени и сил.
А насчет ios - пока есть несколько проектов для Андроида. ios никуда не денется, всему свое время.
Re: Несколько вопросов по языку
про учебник потому сказала, что если вы УЖЕ программист, то должны понимать, что переводить с одного языка дословно на другой все равно что переводить с английского на немецкий просто подставляя слова. Очень со многими вещами там подход разный.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Несколько вопросов по языку
А еще есть Android NDK, хотя в большинстве случаев это как из пушки по воробьям. =)
-
Michael_il
- Сообщения: 28
- Зарегистрирован: 15 окт 2014, 06:05
Re: Несколько вопросов по языку
Нет, про учебник - это нормально. Но большинство языков построено по общим приемам. Я вот, выяснил, что вместо #defines из Си, в java используют константы. И объявление структур тоже есть. Все похоже, только приемы применения разные.
Можно взять учебник и разбираться долгое время, а можно получить дельный совет и сэкономить это время. Оба подхода применимы.
Android NDK - это первое, куда я полез
Можно взять учебник и разбираться долгое время, а можно получить дельный совет и сэкономить это время. Оба подхода применимы.
Android NDK - это первое, куда я полез
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Несколько вопросов по языку
Синтаксис языка это его очень малая часть. Синтаксис знать можно, при этом не уметь программировать. Вы пытаетесь именно синтаксис и узнать. Но там есть такие вещи, как ссылки (в СИ вроде это указатели), которые хранятся в хипе, а примитивные типы в стеке. Там есть GC, а не прямая очистка памяти. Там есть интерфейсы и нет множественного наследования. Это только что вспомнил.
В принципе я не считаю это проблемой, если человек знает Си. Но думаю что всё таки прочитать, хотя бы поверхностно как лучше работать с Java, всё же стоит. Это больше относится к архитектуре в самом языке, нежели к его синтаксису. Одно дело уметь писать, совсем другое писать правильно.
В принципе я не считаю это проблемой, если человек знает Си. Но думаю что всё таки прочитать, хотя бы поверхностно как лучше работать с Java, всё же стоит. Это больше относится к архитектуре в самом языке, нежели к его синтаксису. Одно дело уметь писать, совсем другое писать правильно.
-
Michael_il
- Сообщения: 28
- Зарегистрирован: 15 окт 2014, 06:05
Re: Несколько вопросов по языку
Согласен стопроцентно!
Re: Несколько вопросов по языку
считаете "дельный совет" на форуме заменит учебник? а не боитесь, что он наоборот, отнимет у вас время, заведя не туда?Michael_il писал(а):Нет, про учебник - это нормально. Но большинство языков построено по общим приемам. Я вот, выяснил, что вместо #defines из Си, в java используют константы. И объявление структур тоже есть. Все похоже, только приемы применения разные.
Можно взять учебник и разбираться долгое время, а можно получить дельный совет и сэкономить это время. Оба подхода применимы.
Android NDK - это первое, куда я полез
штудировать "долгое время" нужно тому, кто вообще ничего не знает, а кто знает (на самом деле) другой язык, то достаточно учебник пролистать, как я сказала. Это не так уж и долго.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
-
Michael_il
- Сообщения: 28
- Зарегистрирован: 15 окт 2014, 06:05
Re: Несколько вопросов по языку
Ну, зачем сразу крайности? Мы же не обсуждаем глобальные глубокие корни языка.
Я не против обучения, даже "за" обеими руками, если только усилие стоит результата. Сам штудировал Страуструпа и Рихтера, когда надо было.
Но если мне разок попался проектик на Андроиде, то читать двухтомник по Джаве, это все равно что покупать корову ради стакана молока.
Для этого и существуют форумы, чтобы решать небольшие вопросы.
Как говорил товарищ Винни Пух: "по-моему, так".
Благодарю всех за помощь и участие.
Я не против обучения, даже "за" обеими руками, если только усилие стоит результата. Сам штудировал Страуструпа и Рихтера, когда надо было.
Но если мне разок попался проектик на Андроиде, то читать двухтомник по Джаве, это все равно что покупать корову ради стакана молока.
Для этого и существуют форумы, чтобы решать небольшие вопросы.
Как говорил товарищ Винни Пух: "по-моему, так".
Благодарю всех за помощь и участие.
Re: Несколько вопросов по языку
а у тебя "учебник" - это двухтомник? 
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Несколько вопросов по языку
Если честно -это полный бред (ну неудержался я... 2 дня пытался игнорить тему...(зна., что тема "моложеMichael_il писал(а):Нет, про учебник - это нормально. Но большинство языков построено по общим приемам. Я вот, выяснил, что вместо #defines из Си, в java используют константы. И объявление структур тоже есть. Все похоже, только приемы применения разные.
Можно взять учебник и разбираться долгое время, а можно получить дельный совет и сэкономить это время. Оба подхода применимы.
Android NDK - это первое, куда я полез
P.S. синтаксис вам нужен меньше всего - это примитив, базу можно освоить за 2 дня, остальное придет в течении 2-4 недель работы. Первое, что вам нужно - это философия java, т.е. посмотрите на реализацию знакомых вам алгоритмов, во вторых почитайте "Банду Четырех", поскольку java -это фактически "эталонный" пример ООП и без него тут никуда, а это значит, что шаблоны проектирования играют тут первоочередную роль и жить без них нельзя. Нужно забыть, что такое составление инструкций компилятору (пусть даже с приминением высокоуровневых библиотек из плюсов) и начать думать объектами и структурами -это принципиально другой путь и искать сравнения тут не нужно... "Опустошите свой стакан", другого пути нет, тем более, что это java.
Если конкретнее по теме, то препроцессор с лихвой вам заменит так называемая методология - программирование через интерфейсы, DI, type hinting и т.д. Объявление структур данных возможно, но нафига, если опять таки - это ООП, все тут является объектом, как собственно и ваша структура, т.е. созданный вами класс, хранящий в себе данные и содержащий методы работы с ними - уже с избытком выполняет все задачи, при правильном построении (опять таки) архитектуры взаимодействия классов вы получите на много "меньшей кровью" в десятки раз больше инструментов, чем доступно в крестах...
P.S> вопрос можно? за Си, что платить перестали???? Я че то пропустил или появились специалисты(не студенты) ведущиеся на нищенские зарплаты "крупных" игроков вроде google с их "модными" фичами?
Просто интересно, да и как бы возможно вам просто одно приложение нужно.. так может нафик разбираться и просто ссылку на stackoverflow подкинуть?

-
Michael_il
- Сообщения: 28
- Зарегистрирован: 15 окт 2014, 06:05
Re: Несколько вопросов по языку
Вот! Это самый дельный и расширенный ответ на мои бредовые (как я уже сам догадался) вопросы. Хотел нахрапом накинуться на Java - не получилось. Аппликацию свою написал. Там простенький интерфейс, для работы с внешним девайсом через блютуз. Тестовая аппликация. Если будет этому продолжение, начну копать Java глубже. Я уже понял, что это совершенно другая философия и подход.
Спасибо за деликатную и конструктивную критику.
За Си платить не перестали, но хочется вылезти из ежедневной рутины и попробовать что-то новенькое.
P.S. Я вижу, тут на форуме можно поблагодарить. А как это сделать?
Спасибо за деликатную и конструктивную критику.
За Си платить не перестали, но хочется вылезти из ежедневной рутины и попробовать что-то новенькое.
P.S. Я вижу, тут на форуме можно поблагодарить. А как это сделать?
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Несколько вопросов по языку
Справа от сообщения желтый оттопыренный палец
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Несколько вопросов по языку
А я вот наоборот, Си мало знаю и вроде как хочется его понять получше, но останавливает то, что может лучше изучить Swift, чтобы можно было и под ios писать с новомодным языком? Одно другому конечно не мешает, но времени на обе вещи просто нету.
Так что как бы вопрос: а для чего мне может быть полезен Си? в дальнейшем себя хочу позиционировать как тим лид по мобильным разработкам на обе платформы, либо PM.
Так что как бы вопрос: а для чего мне может быть полезен Си? в дальнейшем себя хочу позиционировать как тим лид по мобильным разработкам на обе платформы, либо PM.
Re: Несколько вопросов по языку
Миша, во первых Си - это основа основ и он просто необходим для формирования мышления программиста и понимания того, как машина будет понимать и выполнять твои команды. К слову опять таки тот же банальный Makefile можно использовать везде. В любом случае, даже при условии, что у тебя достаточно опыта в java - Си расширит твое понимание того, что происходит с кодом после нажатия кнопки run и как следтсвие ты сможешь писать более эффективно, я уже неоднократно повторял цитату Линуса Торвальдса (к слову говорил он это при личной встрече) и на 100% согласен - ты никогда не будешь по настоящему хорошим программистом не зная Си. По поводу свифта - зачем? Писать под iOS ты можешь на Си и я тебе могу гаррантировать, что у опытного Си программиста освоение Objective -C займет не больше недели ито только потому, что lisp -овские скобочки будут не привычны... Начать размышлять стоит с того, что платят программисту не за язык программирования, а за решение бизнес задач. Все эти php, python, javascript и даже jvm - написанны на Cи. Я честно устал смеяться и просто грустно уже когда рассуждают есть или нет работа для Си программиста... ведь все лидеры рынка пишут на Си и другого пути нет. Я уже не говорю о сфере в которой важно писать безопастное ПО и где без Си вообще не возможно ничего. Конечно swift - это сейчас выгодно для "входа" на перенасыщенный рынок iOS, но опять таки зависит от конечно цели... ты хочешь быть пользователем чужого кода и дальше клепать не понятные приложения по шаблонам из туториалов? Это же совсем другой мир. Я уже говорил не раз и повторю, все эти "новые" технологии - PR ход крупных компаний для привлечения студентов и "плавание" на верхних строчках обзоров... опять таки быть модным и привлекать хипстерскую молодеж в программировании. Эти компании платят зарплату студентам, 120 к в год, которые они заявляют - это копейки за которые не будет работать senior или архитектор ПО в США. Даже у нас та часть команды, которая находится в США переваливает планку 250 к в доходах и это совсем не предел. Крупные компании никогда не будут и не смогул платить столько же сколько средние и даже малые (уточню - не стартапы, а полноценные компании, хотя и стартапы платят больше чем google / amazon / etc.) Я лично получал уже 3 предложения от MS и это честно смешно (во первых не хочется потерятся среди рельно большого числа гениальных сотрудников, во вторых зарплата - просто смешна, плюс дожди у них вечные...). Т.е. хочешь рости - изучай то, что тебе позволит это сделать. Выучить все - невозможно, но именно Си -позволяет решить вообще любую задачу.Mikhail_dev писал(а):А я вот наоборот, Си мало знаю и вроде как хочется его понять получше, но останавливает то, что может лучше изучить Swift, чтобы можно было и под ios писать с новомодным языком? Одно другому конечно не мешает, но времени на обе вещи просто нету.
Так что как бы вопрос: а для чего мне может быть полезен Си? в дальнейшем себя хочу позиционировать как тим лид по мобильным разработкам на обе платформы, либо PM.
P.S. с другой стороны у нас разные с тобой пути, я к примеру совсем не хочу в PM и более того с трудом в свое время вырвался из менеджерского тупика, мне ближе позиция архитектора и потому я делаю упор не только на шаблоны, алгоритмы и структуры данных но и в первую очередь на архитектуру самого кмпьютера и наиболее низкоуровневые инструменты, т.е. мне очень важно понимать детали любой технологии, выучить все нельзя, но Си и именно он позволяет мне не зная swift залезть в его исходники
Главно нужно понять простую вещь (опять пример из php -но он нагляднее посколько очевиден), все юзеры (т.е. девелоперы, ато обидятся) используют его и ради простоты и удобства... зачем возится с компилятором и т.д.? Но главные лидеры и идеологи сообщества, ведущие разработку и даже часть наиболее качественных фреймворков пишут именно на Cи. Вообще без варриантов. Т.е. всегда и везде в этом мире как только мы понимаем, что шутки закончились и начинается работа с реальными задачами (А напомню работа программиста - это решение задач ежедневное, не курение мануала и очередного туториала новой либы, совсем не "курение".) мы начинаем искать узкие места, привлекать консультантов и переписывать на Си. Но чаще бывает круче, платят какой то очень маленькой компании с десятком разработчиков за простую библиотечку или функцию(опять таки написанную на Си) пару сотен тысяч зеленых денег и продолжают курить свои модные фичи.
Вообще я бы мог посоветовать произвести маленький ресерч. Составь резюме с несколько индуским стилем, т.е. не много завышенной самооценкой... Напиши лет 10 опыта Си и участие в парочке крупных проектов, желательно еще и опенсорсное что -то вроде ядра линукса и просто выложи на linkedin c указанием желаемого дохода от 250 к в год. Только укажи обязательно иначе получишь предложения с обсуждением (такие вещи не публикуют) и просто посчитай колличество предложений, думаю ты сильно удивишься откуда беруться не распиаренные миллионеры
Ну и как бы не забывай, у хорошего программиста -мало времени и очень много работы, потому они не ведут блоги, не пишут статьи на хабр и т.д. если конечно им за это не платят... но кто будет так транжирить время? Правильно студент ведущийся на "звездность" и популярность, вот только через год он уже не будет так крут... Да и платить за статьи, твитер и модные сообщества никто не будет и здесь становится понятна откуда такая низкая цена у крупных игроков. Хотя конечно в google есть ребята с серьезными заслугами и более чем доходами, воит только опять таки, ну нет у них времени книжки и статьи писать, потому светятся они редко.
P.S. v2 в общем много лишних букав но суть проста, знание важнейших языков программирования English & Cи позволит тебе на "тЫ" разговаривать с ведущими разработчиками того же google и более того ежедневно тролить их
Начать вполне можно с форка вот такой репы - https://github.com/kaffe/kaffe

Re: Несколько вопросов по языку
ого
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Несколько вопросов по языку
Убедительно сказал. Но всё таки, многие выбирают данные языки чтобы быстрее и легче получить профит от них в виде финансов, и таки они это получают. А деньги нужны довольно часто, ты даже и сам говоришь:
И да, ты вроде вполне себе программист. Почему же у тебя есть время на форум?пока даже компанию регестрировать нет желания просто потому, что очень не хочется свзываться с манагерскими делами, а нанять кого -то крутого денег не хватит
